使用PHP SDK(如RSS Graffiti)自动发布到Facebook

时间:2013-09-04 02:36:37

标签: php facebook facebook-graph-api facebook-php-sdk facebook-sdk-3.0

我想在facebook上使用php SDK发布自动像RSS涂鸦这样做我有这个脚本,每个东西都很好并且正常工作但我面临的一个问题是我的脚本

$facebook = new Facebook(array(
            'appId' => 'appId',
            'secret' => 'secret',
            'fileUpload' => true
        ));   


$facebook->setExtendedAccessToken();
$access_token = $_SESSION["fb_".$fb_appId."_access_token"];

$facebook->setAccessToken($access_token);
$accessToken = $facebook->getAccessToken();

$user_id = $facebook->getUser();
$fbuser = $user_id;

echo $accessToken ;

这个脚本使用accessToken并将其存储到mysql中,所以我可以使用它60天.. 我只为自己使用这个应用程序,所以我使用的是mysql而不是RSS,所以在FB上发布辩证,因为它在我的网站上发布...

问题:

每当我想获得accessToken时,我必须手动登录facebook(可以自动完成以获得令牌)吗?

我可以使用SDK中的登录详细信息自动登录并获取accessToken吗?如果是这样的话?

我希望每60天获得一次accessToken以使其正常工作。

所以请帮忙

1 个答案:

答案 0 :(得分:1)

您似乎对access token有很多疑惑。

请记住关于user access token -

的以下几点
  1. 短期令牌只能在用户与您的应用程序进行交互时获取(更具体地说,当用户登录/授权您的应用时)

    有效期:最多2小时

  2. 长期令牌只能 与短期令牌交换。使用以下请求:

    GET /oauth/access_token?  
      grant_type=fb_exchange_token&           
      client_id={app-id}&
      client_secret={app-secret}&
      fb_exchange_token={short-lived-token}
    

    有效期:60天

  3. 所以,很明显,如果你想刷新登录生存的令牌(在它到期之前),你将需要一个短期令牌,你可以通过将该人送回使用的登录流程来获得通过您的应用程序(不是真正重新授权,而只是获取新令牌)

    您可以在开发者网站here上阅读有关过期和扩展标记的详情。

    修改

    如果您只想发布到粉丝页面,可以使用page_access_token。可以通过一次性过程获得永不过期的粉丝页面令牌;并且您可以使用它在您的页面上执行操作。

    请参阅本讨论的接受答案:What are the Steps to getting a Long Lasting Token For Posting To a Facebook Fan Page from a Server