【问题标题】:Yammer: can no longer access messages from other network using Yammer APIYammer:无法再使用 Yammer API 访问来自其他网络的消息
【发布时间】:2015-05-30 08:22:25
【问题描述】:

我是两个 Yammer 网络 N1 和 N2 的成员。 N1 是我的家庭网络。

几天/几周后,我无法再使用 Yammer API 访问来自 N2 网络的消息。

这是我从 N1 获取消息的方式(成功):

  • 通过浏览https://www.yammer.com/dialog/oauth?client_id=[clientid]&redirect_uri=[redirecturi]获取授权码
    • 结果为 [authcode_N1](登录后;在 URL 中)
  • 执行 GET https://www.yammer.com/oauth2/access_token.json?client_id=[clientid]w&client_secret=[secret]&code=[authcode_N1]
    • 结果为带有 [access_token1] 的 JSON(注意:响应中只有一个令牌)
  • 通过执行 GET https://www.yammer.com/api/v1/messages.json 获取消息,HTTP 标头 Authorization: Bearer [access_token1]
    • 结果:仅来自 N1 的消息

这是我尝试从 N2 获取消息的方式(失败):

  • 通过浏览https://www.yammer.com/N2/dialog/oauth?client_id=[clientid]&redirect_uri=[redirecturi] 获取授权码。
    • 请注意 URL 中的“N2”
    • 结果为 [authcode_N2](与之前为 N1 获得的结果不同)
  • 执行 GET https://www.yammer.com/oauth2/access_token.json?client_id=[clientid]w&client_secret=[secret]&code=[authcode_N2]
    • 导致状态 403,正文 'Your network is not allowed to request an OAuth token for this Application'

这是另一个从 N2 获取消息的尝试(也失败了):

  • 通过在https://www.yammer.com/api/v1/oauth/tokens.json 上执行GET 获取令牌,HTTP 标头'Authorization: Bearer [access_token1]
    • 生成的 JSON 包含两个元素,两个元素都具有不同的网络 ID(一个用于 N1,一个用于 N2)和每个网络的令牌
    • 请注意,此 JSON 中 N1 的令牌与上面的 [access_token1] 匹配
    • 让我们在这个 JSON [access_token2] 中调用 N2 的令牌
  • 执行 GET https://www.yammer.com/api/v1/messages.json,HTTP 头 Authorization: Bearer [access_token2]
    • 回复:{"response":{"stat":"fail","code":17,"message":"Attempt to access a protected resource failed."}}

请注意,[clientid]、[secret] 和 [redirecturi] 来自我们的应用程序。在其设置页面(标题为“已注册的应用程序”)上,“已启用”列中有一个绿色复选标记,“全局”列中没有。在此应用程序的“基本信息”部分,有一个绿色的“部署”按钮。 也许这是导致问题的原因(我在这个方向上发现了一些用户对类似问题的回应(参见Yammer REST API: How to get access tokens for external networks?))?但这并不能解释为什么从 N2 获取消息以前可以正常工作...

请告诉我如何从 N2 获取数据。

提前致谢!

【问题讨论】:

    标签: oauth-2.0 social-networking yammer


    【解决方案1】:

    将 GET https://www.yammer.com/api/v1/oauth/tokens.json?access_token= 与您的 N1 令牌一起使用,为您的所有网络生成一个令牌。 从响应中读取 N2 令牌并使用此令牌调用 yammer API。

    您可以在“著名的”zapier“Api Quirks”上看到它是如何工作的 https://zapier.com/blog/api-quirks-yammer-external-networks/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-17
      • 2022-09-28
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      相关资源
      最近更新 更多