當輸入以下爲我的終端翻譯命令行卷曲到PHP
curl -F 'client_id=[clientID]' -F 'client_secret=[clientSecret]' -F 'grant_type=authorization_code' -F 'redirect_uri=[redirectURI]' -F 'code=[code]' https://api.instagram.com/oauth/access_token
我得到
{"code": 400, "error_type": "OAuthException", "error_message": "Invalid Client ID"}
但是,當我嘗試實現使用相同的結果(所有變量都設置了。只是一種不必要的,包括他們)
$url = "https://api.instagram.com/oauth/authorize";
$data = array('client_id' => '['.$client_id.']',
'redirect_uri' => '['.$redirect_uri.']',
'scope' => '[relationships]',
'response_type' => '[code]');
//$fields = http_build_query($data, '', '&');
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_POST, count($data));
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json'));
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_VERBOSE, 1);
curl_setopt($c, CURLOPT_HEADER, true);
$control = curl_exec($c);
echo '<pre>';
print_r($control);
echo '</pre>';
我得到
HTTP/1.1 100 Continue
HTTP/1.1 302 Moved Temporarily
Content-Type: text/html
Date: Tue, 04 Mar 2014 18:56:59 GMT
Location: https://instagram.com/oauth/authorize
Server: nginx
Content-Length: 154
Connection: keep-alive
HTTP/1.1 302 FOUND
Cache-Control: private, no-cache, no-store, must-revalidate
Content-Language: en
Content-Type: text/html; charset=utf-8
Date: Tue, 04 Mar 2014 18:56:59 GMT
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Location: https://instagram.com/accounts/login/?next=/oauth/authorize
Pragma: no-cache
Server: nginx
Set-Cookie: csrftoken=28c6b04e3e73745694d9fd4388acd8dd; expires=Tue, 03-Mar-2015 18:56:59 GMT; Max-Age=31449600; Path=/
Set-Cookie: mid=UxYh-wAEAAFN3ZUutKcww23Vw_jd; expires=Mon, 27-Feb-2034 18:56:59 GMT; Max-Age=630720000; Path=/
Set-Cookie: ccode=US; Path=/
Vary: Cookie, Accept-Language
Content-Length: 0
Connection: keep-alive
HTTP/1.1 200 OK
Cache-Control: private, no-cache, no-store, must-revalidate
Content-Language: en
Content-Type: text/html
Date: Tue, 04 Mar 2014 18:56:59 GMT
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Last-Modified: Tue, 04 Mar 2014 18:56:59 GMT
Pragma: no-cache
Server: nginx
Set-Cookie: csrftoken=db8986eddf5ef57b2d080c7680ef614d; expires=Tue, 03-Mar-2015 18:56:59 GMT; Max-Age=31449600; Path=/
Set-Cookie: mid=UxYh-wAEAAGxzegm0WQTbJBav8qr; expires=Mon, 27-Feb-2034 18:56:59 GMT; Max-Age=630720000; Path=/
Set-Cookie: ccode=US; Path=/
Vary: Cookie, Accept-Language, Accept-Encoding
X-Frame-Options: SAMEORIGIN
Content-Length: 10841
Connection: keep-alive
東西似乎與我在我的PHP代碼中使用cURL的方式。有什麼建議麼?
的'-F'選項對應於'CURLOPT_POSTFIELDS',而不是URL參數。 – Barmar
另外,如果你想建立一個查詢字符串,使用'http_build_query()'。 – Brad