【问题标题】:oAuth and YammeroAuth 和 Yammer
【发布时间】:2011-11-09 19:38:15
【问题描述】:

我正在尝试使用 NodeJS 设置一个内部 RESTful API,该 API 与各种社交媒体服务进行通信。我们使用的服务之一是 Yammer。 Yammer 使用 oAuth 进行验证,但它们提供永久验证令牌。出于某种原因,我在尝试发布时遇到了传递令牌的问题。从他们的文档看来,我所要做的就是在 URL 中发布所有内容。一个例子是

POST https://yammer.com/mycompany.com/api/v1/messages.json?body=Testing&access_token=<myAccessToken>

当我这样做时,我没有得到回应。有什么我遗漏的吗?

我还想补充一点,以这种方式测试 GET 也不起作用

GET https://yammer.com/mycompany.com/api/v1/messages.json?access_token=<myAccessToken>

【问题讨论】:

  • 您能否发布您正在使用的文档的链接?
  • 当你说“没有得到回应”时,你的意思是回应正文是空的吗?你得到什么样的标题?什么是状态码? 404?
  • 正文是空的。我收到了 406 回复。这是在使用他们的沙箱时。我经历了获取新令牌然后永久授权我的应用程序的过程。当我像上面那样发出 GET 请求时,它会返回该响应。

标签: node.js oauth yammer


【解决方案1】:

Yammer API 要求 OAuth 数据位于标头中。如果您查看他们的获取数据示例,您会看到请求的样子。

GET /api/v1/messages/favorites_of/1234 HTTP/1.1

主机:www.yammer.com

授权:OAuth oauth_consumer_key = “KsTROcNF1Fx3e1PwA”,组oauth_token = “vlVH7A7DOm9wXuHdv58A”,oauth_signature_method = “PLAINTEXT”,oauth_timestamp = “1297383841092”,oauth_nonce = “1047685618”,oauth_verifier = “E4F8”,oauth_signature = “yPsEvDnNPIA8xGCFLvMJ73K0DD9ivMpATJeFOSo%26fSFh9UPkHQ6oRwK5OTne33ltnSnbQ9XrAhA72heg” P>

OAuth 数据在授权标头中,而不是在 URL 中。唯一一次在 URL 中包含任何 OAuth 数据是在您进行授权时。

【讨论】:

  • 我已阅读文档并尝试使用 REST 控制台进行测试,但仍然无法使其正常工作。我没有复制和粘贴他们的示例,我使用了自己的密钥。我发布上面示例的原因是因为当我使用 Yammer 的沙箱时,它们会自动执行在您的请求中包含 Auth 令牌的过程。当您发出请求时,他们会像上面那样对其进行格式化,并且不要将其放在 auth 标头中。或者至少这就是他们正在做的事情。
  • 在请求资源时,OAuth 部分始终位于标头中。除非正确完成授权,否则该请求将无法工作。
  • @MarkS。你碰巧在.net中有这样的例子吗?我一直在试图弄清楚如何发送 POST 请求,但总是得到未授权。我的问题在这里stackoverflow.com/questions/18533355/…
  • this question中的代码示例。
  • @MarkS。我从哪里获得 oauth_consumer_keyoauth_timestampoauth_nonceoauth_verifieroauth_signature ??所有 yammer 文档都说是发送一个 "Bearer",然后在使用 yammer.com/oauth2/access_token.json?client_id=" & clientID & "&client_secret= 时在 json 返回 (access_token) 中找到的 yammer 令牌" & clientSecret & "&code=" & authorizedToken。我做错了吗??
【解决方案2】:

我创建了this gist,在其中使用 Yammer API 在通过 Fabric 构建完成后发布状态。它在 Python 中,但它可能会为您指明正确的方向。

我假设您获得了正确的访问令牌,因为这很关键。

我建议使用this library 来获取访问令牌,因为它非常简单易用。这将确保您拥有正确的访问令牌。

【讨论】:

  • 谢谢龙虾1234。不幸的是,我仍然“不明白”我什至无法让他们的沙箱工作。他们通过输入您的密钥和秘密来引导您获取访问令牌,然后他们生成一个授权链接,您粘贴 4 位代码以获得永久身份验证令牌。然后他们声称会自动为您放入身份验证令牌并让您进行一些测试 API 调用。它们都不起作用。但是,如果我获取会话 cookie 信息并且不使用他们的沙箱并将我的 cookie 信息放在标题中并进行相同的调用,它工作正常,所以我知道调用是正确的。
  • @lobster1234 我刚刚尝试了你的要点,但没有运气仍然是同样的错误,有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-10
相关资源
最近更新 更多