Facebook PHP SDK获取访问令牌使用PHP


Facebook PHP SDK get access token using php

我使用以下代码发布到Facebook:

require('facebook.php');
$fb = new Facebook(array('appId' => 'MY APP ID','secret' => 'MY APP SECRET','cookie' => true));
$result = false;
$feed_dir = '/401868882779/feed/';  //to the UID you want to send to
$acToken = "MY ACCESS TOKEN";
$url = 'URL';
$link = $url . 'event.php?id=' . $id;
if (isset($picture))
{
    $picture = $url . 'uploads/' . $picture;
}
else
{
    $picture = $url . 'images/blank100x70.png';
}
$msg_body = array('access_token' => $acToken,'name' => $noe_unsecured,'message' => $link,'link' => $link,'description' => $description_unsecured,'picture' => $picture);
try
{
    $result = $fb->api($feed_dir, 'post', $msg_body);
} 
catch (Exception $e)
{     
        $err_str = $e->getMessage();
}

,但我需要在每次更改时手动更新访问令牌。我肯定有解决办法,但我找不到。我试了很多脚本,但都没用。

这是可能的。

检查:http://developers.facebook.com/docs/reference/php/facebook-setAccessToken/

根据您执行wall post的时间,您可能需要请求offline_access权限。这将把你的access_token转换成一种不会过期的格式,这样就不需要刷新token了。

一个简单的解决方案…remove the access_token !
只要您获得publish_stream许可,您根本不需要它!

我相信有多种方法可以做到这一点:

-您可以使用已经在PHP SDK getAccessToken中提供的方法,该方法返回SDK实例正在使用的当前访问令牌,更多信息请参阅此url。

-然而,你不需要使用访问令牌来调用api()方法,一旦你向用户请求publish_stream权限,正如@ifaour已经提到的。因此,您可以做类似于这个例子的事情,滚动到子标题使用Graph API发布一个链接到用户的墙。

-然后,你还有三个选择

i)要么得到一个新的访问令牌使用这里的方法,如果你张贴时,用户目前正在使用你的应用程序,否则你可以尝试下两个选项
ii)获取离线访问
Iii)我不确定这一点,但你可能想尝试一个应用程序访问令牌,可以通过这种方式获得。