2012-02-02 130 views
0

使用PHP和捲曲與此URL生成一個訪問令牌:四方的OAuth2 401錯誤

https://foursquare.com/oauth2/access_token?client_id=MY_CLIENT_ID&client_secret=MY_SECRET&grant_type=authorization_code&redirect_uri='.urlencode('MY_REDIRECT_URL').'&code='.$token['oauth_token']

這個過程就好了,並返回一個令牌。此標記只有當我在復位foursquare.com

消費者密鑰和密碼使用該令牌與

https://api.foursquare.com/v2/users/search?name=test&oauth_token=RETURNED_TOKEN

總是返回401錯誤變化。我用這些指令https://developer.foursquare.com/overview/auth

+0

你有你的訪問令牌,很難弄清楚你有401未經授權。檢查http標題也許你會發現其他信息。 – malletjo 2012-02-02 05:38:34

+0

請檢查這個推斷你的401 http://oauth.net/core/1.0a/#http_codes – aitchnyu 2012-02-02 06:35:31

+0

好吧我只是在腳本外測試了我的瀏覽器中的用戶/搜索網址,它工作。我正在審查我的PHP腳本,並會很快發佈錯誤。 – steve76 2012-02-02 15:28:48

回答

0

確定這裏就是發生的事情:

在OAuth的PHP客戶端代碼

,該OAuthRequestSigner的getQueryString方法構建請求URL查詢字符串,以防止增加的OAuth 1.0時有以下條件簽署PARAMS:

(strncmp($name, 'oauth_', 6) != 0 

我有一個配置文件來管理我的OAuth參數和添加

$param=array(
    ... 
    'oauth2'=>true 
    ...); 

這是傳遞到OAuthRequestSigner類和調整條件爲

((strncmp($name, 'oauth_', 6) != 0 || $param['oauth2'])