2013-08-26 64 views
0

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

我能够从主叫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调用。那是对的吗?

我将不胜感激任何建议。

回答

0

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