php - Facebook access_token 无效

标签 php javascript facebook-graph-api oauth

我正在为一个事件建立一个小网站。这个想法是将 Facebook 事件的参加者添加到此网站。问题是主服务需要access_token。我不想让用户登录应用程序,我只想使用应用程序access_token。但这似乎不起作用。

我有以下用于接收 access_token 的 php 代码:

// get facebook auth_token
$FB_APP_ID = '****';
$FB_APP_SECRET = '***';
$token_url = "https://graph.facebook.com/oauth/access_token?client_id=" . $FB_APP_ID . "&client_secret=" . $FB_APP_SECRET . "&grant_type=client_credentials";
$app_token = file_get_contents($token_url);
parse_str($app_token); // creates: $access_token

In javascript I am using the following code:

/**
 * Gets all the attending Users
 * @param function callback: the function to call, when data loading is ready
 * @param function callback: the function to call, when data loading is broken
 * @return void
 */
this.getAttending = function(callback, errorHandler) 
{
    FB.api('/' + this.eventId + '/attending', function(response) {
        if(response.error) {
            errorHandler(response.error['message']);
        } else {
            callback(response.data);
        }
    } , {access_token: facebook.accessToken} );    
}

我收到错误: OAuth 访问 token 无效。

访问 token 如下所示: 111737995591905|l9e3niEMM1RsIUhwHZv3pn3c19M

用户访问 token 如下所示: 145634995501895|2.AQBcWfbvdzhloLYc.3600.1312138800.1-1146858041|cjCkHZqquyyFyX2dY0q2YCaSyy0

当我尝试使用用户访问 token 时,一切正常。但是当我对 token 进行硬编码时,这对其他用户不起作用。当我尝试服务器为我解析的 token 时,我得到无效的 token 操作。有人知道这个问题的解决方案吗? 这是一个公共(public)事件,我不希望用户在知道谁参加之前登录?

这可能吗? 谢谢!

最佳答案

您在硬编码时是否对 token 进行了编码? |应该是 %7C 。 目前想不出还有什么可能出错的地方

关于php - Facebook access_token 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6891144/

相关文章:

javascript - 鼠标移出时动态 jQuery 隐藏 div

facebook - 获取邀请好友的FB用户id

ios - Facebook 地方 API : Is it possible to get the place picture?

php - 使用 mysql 和 php 从空表中获取所有行名

php - 如何在 Amazon Linux AMI 上安装 Microsoft Drivers for PHP for SQL Server

php - 这个查询有什么问题

javascript - 如何在 php 中获取 javascript 动态行值?

javascript - 如何让 discord.js 机器人仅在用户响应后才回复一系列 DM 消息?

Facebook 访问 token 将在两小时后过期

PHP PDO::FETCH_LAZY - 在访问时不创建对象变量名