Я являюсь частью двух сетей Yammer N1 и N2. N1 — моя домашняя сеть.
Через несколько дней/недель я больше не могу получать доступ к сообщениям из сети N2 с помощью Yammer API.
Вот как я получаю сообщения от N1 (что успешно):
- get auth code by browsing to
https://www.yammer.com/dialog/oauth?client_id=[clientid]&redirect_uri=[redirecturi]
- results in [authcode_N1] (after loggin in; in URL)
- perform GET
https://www.yammer.com/oauth2/access_token.json?client_id=[clientid]w&client_secret=[secret]&code=[authcode_N1]
- results in JSON with [access_token1] (note: there is only one token in response)
- get messages by performing GET
https://www.yammer.com/api/v1/messages.json
, with HTTP headerAuthorization: Bearer [access_token1]
- result: messages from N1 only
Вот как я пытаюсь получить сообщения от N2 (что не удается):
- get auth code by browsing to
https://www.yammer.com/N2/dialog/oauth?client_id=[clientid]&redirect_uri=[redirecturi]
.- note 'N2' in URL
- приводит к [authcode_N2] (который отличается от ранее полученного для N1)
- perform GET
https://www.yammer.com/oauth2/access_token.json?client_id=[clientid]w&client_secret=[secret]&code=[authcode_N2]
- results in status 403, body
'Your network is not allowed to request an OAuth token for this Application'
- results in status 403, body
Вот еще одна попытка получить сообщения от N2 (которая тоже не удалась):
- get tokens by performing GET on
https://www.yammer.com/api/v1/oauth/tokens.json
, with HTTP header 'Authorization: Bearer [access_token1]- results in JSON with two elements, both with a different network ID (one for N1 and one for N2) and a token for each network
- обратите внимание, что токен для N1 в этом JSON соответствует [access_token1] выше
- давайте вызовем токен для N2 в этом JSON [access_token2]
- perform GET
https://www.yammer.com/api/v1/messages.json
, with HTTP headerAuthorization: Bearer [access_token2]
- response:
{"response":{"stat":"fail","code":17,"message":"Attempt to access a protected resource failed."}}
- response:
Обратите внимание, что [clientid], [secret] и [redirecturi] взяты из нашего приложения. На его странице настроек (озаглавленной «Зарегистрированные приложения») есть зеленая галочка в столбце «включено», а в столбце «глобальные» нет. В разделе «Основная информация» для этого приложения есть зеленая кнопка «Развернуть». Возможно, это вызывает проблему (я нашел некоторые ответы пользователей в этом направлении о подобных проблемах (см. access-tokens-for-external-networks">Yammer REST API: как получить токены доступа для внешних сетей?))? Но это не объясняет, почему раньше работало получение сообщений от N2...
Пожалуйста, дайте мне знать, как я могу получить данные от N2.
Заранее спасибо!