2013-08-26 97 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憑證交換爲永久憑證。