0

我想使用 RSS Graffiti 之类的 php SDK 在 facebook 上自动发布,所以我在每件事上都有这个脚本,一切都很好并且可以工作,但我面临一个问题是我的脚本

$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 以使其正常工作。

所以请帮忙

4

1 回答 1

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天

因此,很明显,如果您想刷新登录令牌(在它过期之前),您将需要一个短期令牌,您可以通过将人员发送回您的应用程序使用的登录流程来获得该令牌(不是真的重新授权,只是为了获得新的令牌)

您可以在此处的开发者网站上阅读有关过期和扩展令牌的更多信息。

编辑

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

请参阅此讨论的已接受答案:What are the Steps to get a Long Lasting Token For Posting To Facebook Fan Page from a server

于 2013-09-04T19:30:35.360 回答