簡體   English   中英

使用PHP進行Instagram身份驗證

[英]Instagram Authentication using PHP

各位開發人員大家好,

我到處搜索,似乎這個問題仍然沒有解決,有些人似乎通過使用代理服務器或更改其IP地址來解決此問題,這在我的情況下不起作用。 由於Instagram沒有官方的PHP或JavaScript SDK,因此我需要在此處提出此問題。

當我嘗試通過檢索到的令牌對Instagram進行Oauth呼叫時,它將在下面返回錯誤消息:

{"code": 400, "error_type": "OAuthException", "error_message": "Matching code was not found or was already used."}

我在下面的代碼中提供了您的觀察結果:

獲取令牌

private function getLoginURL($scopes = array("basic")) {
    return self::API_OAUTH_URL."/?client_id=".self::CLIENT_ID."&redirect_uri=".self::REDIRECT_URI."&scope=".implode("+", $scopes)."&response_type=code";
}

驗證(Oauth 2.0)

private function auth() {
    $api_data = array(
        'client_id'     => self::CLIENT_ID,
        'client_secret' => self::CLIENT_SECRET,
        'grant_type'    => 'authorization_code',
        'redirect_uri'  => urlencode(self::TOKEN_URL),
        'code'          => self::TOKEN
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, self::TOKEN_URL);
    curl_setopt($ch, CURLOPT_POST, count($api_data));
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($api_data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 90);

    $json_data = curl_exec($ch);
    curl_close($ch);
    //return json_decode($json_data, true);
    return $json_data;
}

有人可以幫我嗎:(

問題:您的響應類型是code

  1. 由於Instagram API的新更改,您需要將響應類型設為token
  2. 這可能需要對現有代碼進行一些修改。

  3. 在使用token ,作用域規范隨之而來。

     private function getLoginURL($scopes = array("basic")) { return self::API_OAUTH_URL."/?client_id=".self::CLIENT_ID."&redirect_uri=".self::REDIRECT_URI."&response_type=token&scope=".implode("+", $scopes); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM