0

Instagram フィードから写真を取得しようとしていますが、毎回認証ポップアップにログインする必要がありますが、DB からアクセス トークンを使用しています。

//FIRST TIME
$array = array(
        'client_id'=>'XXX',
        'client_secret' => 'XXX',
        'grant_type' => 'authorization_code',
        'redirect_uri' => REDIRECT_URL,
        'code' => $_GET['code']
        );

    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch,CURLOPT_POSTFIELDS, $array);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $res = curl_exec($ch);
    $access_token = $res['access_token'];

    //SAVE ACCESS_TOKEN INTO DB 

    //NEXT TIME
    $url = 'https://api.instagram.com/v1/users/self/feed?access_token='.$db['access_token'].'&client_id='.$array['client_id'].'&client_secret='.$array['client_secret'];
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPGET, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $res = curl_exec($ch);

私は何を間違っていますか?

4

1 に答える 1

0

すみません、上の行に誤りがありました。code毎回リクエストしたところ、このリダイレクトによりログインフォームが表示されました。

前:

if(!isset($_GET['code'])) {
    header('location: https://api.instagram.com/oauth/authorize/?client_id=xxx&redirect_uri='.REDIRECT_URL.'&response_type=code');
}else{
    $url = 'https://api.instagram.com/oauth/access_token/';
    // ...

後:

if(!isset($_GET['code']) && !isset($access_token) ) {
    header('location: https://api.instagram.com/oauth/authorize/?client_id=xxx&redirect_uri='.REDIRECT_URL.'&response_type=code');
}else{
    $url = 'https://api.instagram.com/oauth/access_token/';
    // ...

今では正常に動作します。

于 2013-04-19T09:39:23.083 に答える