0

问题:我正在使用 Instagram Api 并且正在使用 OAuth 进行身份验证。我的问题是我无法弄清楚如何让我的会话保持活力。最终它将过期并且不再从服务中获取照片。

背景:我在我的自定义管理面板中创建了一个设置页面,该页面接受客户端 ID 和客户端密码。它将这些值保存到我的数据库中,我的应用程序使用它们连接到 Api。我有一个按钮,您可以单击“保存并连接”,它会更新我的数据库,然后从 Instagram Api 请求身份验证令牌。所有这一切都很好。

我需要:无限期地或尽可能长时间地保持会话。我正在缓存来自 api 的结果集,所以我不会发出太多请求,并且我的访问令牌存储在 php 会话中。但是,当新用户访问,并且会话中没有此令牌时,缓存过期和会话过期后,照片将不再可用?

期待听到一些可能的解决方案。如果您需要更多信息或者我的问题是否不清楚,请告诉我。

谢谢,

扎克

4

1 回答 1

0

您应该将最新的访问令牌保存在数据库或服务器上,并使用保存的令牌发出请求。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 回答