0

我遇到了 MapMyFitness API 的一些问题。MapMyFitness 使用 OAuth 1.0

我能够通过调用 3.1/oauth/request_token 成功获得临时授权令牌/临时秘密令牌组合

之后,我能够成功地将用户引导到授权页面并获得带有授权验证器的重定向回调。

在那之后,不幸的是,我在尝试调用 3.1/oauth/access_token 时遇到了错误。(HTTP 错误 401)

首先,MMF 文档 ( http://api.mapmyfitness.com/3.1/oauth/access_token?doc ) 指出:交换请求令牌和访问令牌的授权验证器。但是,文档中的输入参数列表没有提及 oauth_verifier。我通过重定向回调收到的 oauth_verifier 是否应该作为参数传递给 access_token 调用?

其次,在我看来,也许我没有正确创建签名。对于 3.1/oauth/request_token 调用,生成签名的密钥是“XXX&”,其中 XXX 是 MapMyFitness 分配给我的应用程序的消费者密钥。这工作正常。对于 3.1/oauth/access_token 调用,我使用“XXX&YYY”作为签名密钥,其中 XXX 是 MapMyFitness 分配给我的应用程序的消费者密钥,YYY 是服务器在 3.1/oauth 期间返回给我的临时密钥/request_token 调用。那是对的吗?

我将不胜感激任何建议。

4

1 回答 1

0

好的,我得到它的工作。首先, oauth_verifier 确实需要作为参数的一部分包含在内。出于某种原因,Map My Fitness 并未将其包含在所需参数列表中,但它必须存在。其次 - 非常重要 - 根据 OAuth 1.0 文档,在创建签名时所有参数都需要按字母顺序排列 - 否则会出现签名不匹配,您将收到 HTTP 401 错误。按字母顺序对参数进行排序后,我就可以将临时 MapMyFitness 凭据交换为永久凭据。

于 2013-08-27T18:17:35.143 回答