【问题标题】:Why Doesn't PHP save Sessions when using the instagram PHP API?为什么使用 instagram PHP API 时 PHP 不保存会话?
【发布时间】:2012-02-16 03:18:27
【问题描述】:

我正在尝试使用此处的 php 库创建一个 instagram 应用程序(文件不是很长,别担心):

http://pastie.org/3391787

我正在尝试使用 OAUTH 对用户进行授权,它运行良好,并且被授权的(当前用户)可以看到他的信息(如图像、姓名等),但是当我刷新页面时一切正常我留下了空白数据,这是代码-

// Instantiate the API handler object
$instagram = new Instagram($config);
$accessToken = $instagram->getAccessToken();
$_SESSION['InstagramAccessToken'] = $accessToken;

$instagram->setAccessToken($_SESSION['InstagramAccessToken']);
$userinfo = $instagram->getUser($_SESSION['InstagramAccessToken']);

// After getting the response, let's iterate the payload
$ures = json_decode($userinfo, true);

此代码第一次运行良好,但是当您刷新页面时,未检索到信息,这仅意味着一件事,即会话或 cookie 设置不正确,这就是 getUser 方法的原因没有检索信息,

$userinfo = $instagram->getUser($_SESSION['InstagramAccessToken']);

请您对这个问题有所了解,我已经尝试了 4 个小时!

【问题讨论】:

    标签: php json api oauth instagram


    【解决方案1】:

    在您的每个请求中,您都可以通过这一行覆盖当前会话数据:

    $_SESSION['InstagramAccessToken'] = $accessToken;
    

    很可能是这样的:

    $instagram = new Instagram($config);
    
    if (!empty($_SESSION['InstagramAccessToken'])) {
        $accessToken = $instagram->getAccessToken();
        $_SESSION['InstagramAccessToken'] = $accessToken;
    } else {
        $instagram->setAccessToken($_SESSION['InstagramAccessToken']);
    }
    
    $userinfo = $instagram->getUser($_SESSION['InstagramAccessToken']);
    
    // After getting the response, let's iterate the payload
    $ures = json_decode($userinfo, true);
    

    【讨论】:

    • 感谢您的回答,我试过了,但现在它说用户 deosnt 存在,这是来自 instagram api 的消息!不过,我完全同意对每个请求的最重要的会话!!! :))
    • “我试过了,但现在它说用户不存在” - 这显然已经是另一个问题了。我在回答中表达的主要思想是您需要从 API 或会话中检索令牌。
    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    相关资源
    最近更新 更多