0

問題: Instagram API を使用しており、OAuth で認証しています。私の問題は、セッションを維持する方法がわからないことです。最終的には有効期限が切れ、サービスから写真を取得できなくなります.

背景: クライアント ID とクライアント シークレットを受け入れるカスタム管理パネルに設定ページを作成しました。これらの値を DB に保存し、アプリはそれらを使用して API に接続します。[保存して接続] をクリックして DB を更新し、Instagram API から認証トークンを要求するボタンがあります。これはすべてうまく機能します。

私が必要としているのは、セッションを無期限に、または可能な限り長く維持することです。API からの結果セットをキャッシュしているので、あまり多くのリクエストを行わず、アクセス トークンは php セッションに保存されます。ただし、新しいユーザーがアクセスし、セッションにこのトークンがない場合、キャッシュが期限切れになり、セッションが期限切れになった後、写真は利用できなくなりますか?

いくつかの可能な解決策を聞くことを楽しみにしています。さらに情報が必要な場合、または私の質問が不明な場合はお知らせください。

ありがとう、

ザック

4

1 に答える 1

0

最新のアクセス トークンを DB またはサーバーに保存し、保存したトークンを使用してリクエストを行う必要があります。Instagram のアクセス トークンは長期間有効です (少なくとも現時点では)。ここにあるラッパーを自由に使用してください。そうすれば、トークンを初めて取得する場合を除いて、セッションは問題になりません。

  $insta = new Instagram(array(
                'client_id' => $client_id,
                'client_secret' => $secret,
                'redirect_uri' => $redirect_uri
            ));

if(!$insta->isAuthenticated()){
            /* Not logged in */
            $login_url = $this->insta->getLoginUrl(array(
                'scope' => $scope,
            ));
            header("Location: ".$login_url.");
        }


/* Save the token */
if($this->insta->getToken())
{
    $token_to_save = $this->insta->getToken();
}

次に、保存したトークンを使用します。

$ig_saved_token = getTokenFromDBSomewhere();    
$insta->setToken($ig_saved_token); // Set the saved token
$r = $insta->api('users/self/media/recent'); // Request works with saved token!
于 2013-07-31T20:13:49.127 に答える