2015-05-29 92 views
-1

JSON響應。當我打在瀏覽器的URL https://api.instagram.com/oauth/authorize/?client_id=&redirect_uri=http://localhost/Instagram_flow/result.php&response_type=code&scope=basic+comments+relationships+likes我得到的迴應是:無法從捲曲

{ 「代碼」:400, 「ERROR_TYPE」: 「OAuthException」, 「ERROR_MESSAGE」:「您必須包含一個有效的client_id,RESPONSE_TYPE和REDIRECT_URI參數「}

但是當我做捲曲在這個網址:

$curl=curl_init(); 
curl_setopt($curl, CURLOPT_URL, 'https://api.instagram.com/oauth/authorize/?client_id=&redirect_uri=http://localhost/Instagram_flow/result.php&response_type=code&scope=basic+comments+relationships+likes'); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json')); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$data = curl_exec($curl); 
echo $data; 
curl_close($curl); 

它沒有返回。我也在Postman中打開了這個URL,它也給出了一個JSON響應。

回答

1

您必須在請求參數中包含client_id ...否則您不驗證任何人。

當您使用instagram註冊您的應用程序時,您應該已收到您可以發送您的請求的憑據,以便他們可以驗證它是您的應用程序訪問API。否則,任何具有互聯網的ol用戶都可能連接到該API並混淆其他人的數據。

我推薦通過this OAuth2 tutorial來閱讀,以便更好地瞭解正在發生的事情。

+0

是的,我明白了。但是當我傳遞無效的客戶端ID(比如說任何字符串)時,它也會在JSON中給出一個錯誤。我只想對該URL進行健康檢查,以便向用戶顯示更適合並格式化的消息,而不是純JSON。那是我做了一個cURL,然後讓用戶點擊鏈接。 – MindMingle

+0

這是一個標準的OAuth身份驗證錯誤消息。您會一直看到錯誤消息,直到您成功通過身份驗證。如果你添加一個無效的client_id,那麼錯誤信息應該是不同的(但你仍然會得到一個)。我不確定什麼是「健康檢查」 - 捲曲該URL的關鍵是獲取訪問令牌來訪問該API。如果你只是在查詢參數中發送垃圾,那麼它會一直告訴你,你不認證... – DIMMSum

+0

對於訪問令牌,是的,我們確實捲曲的URL。我想如果有可能趕上那個JSON響應。爲什麼它不捲曲?在訪問令牌的情況下,也會返回JSON響應,我們可以通過curl來實現。爲什麼這個網址沒有以同樣的方式返回?有什麼與我失蹤的捲曲有關? – MindMingle