2

我正在创建一个关于我自己的个人网站,我想让它从 facebook 中提取图像和墙贴并将它们显示在页面上,目前这一切都很好......一个小时,这是访问多长时间令牌持续。

我不想使用 access_tokens 因为帖子和个人资料图片是公开的,而且这个网站的重点是它会在我更新我的 Facebook 个人资料时自我更新

facebook API 可以按我的要求做吗(即允许一直提取照片而不必担心过期甚至不必登录),还是 facebook API 不允许这样做并且仅真正用于人们想在您的网站上使用 thai facebook 帐户发表评论或点赞?

我希望我足够清楚...

总结一下,当人们访问该网站时,我想在我的网站上提取我的个人资料图片,而不必处理 access_tokens

4

1 回答 1

0

如果您将“Facebook 应用程序”配置为“Web 应用程序”,您将获得一个 AppID 和一个 AppSecret。使用这些值,您可以在每次页面加载时动态请求新令牌,并将该令牌用于所有请求。如果您在旧令牌过期之前继续请求新令牌,我相信 facebook 将返回相同的令牌。

这是实现此目的的 PHP 函数:

public static function GetNewAccessToken(){
        try{
            $url = "https://graph.facebook.com/oauth/access_token?client_id=" .   \Core\Config::FB_APPID . "&client_secret=" . \Core\Config::FB_APPSECRET .  "&grant_type=client_credentials";
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output 
            $response = curl_exec($ch);
            curl_close($ch);

            //response will be access_code=<CODE> so we need to strip off the access_code part at the front/
            $token = "";
            if (isset($response) && $response !== FALSE && substr($response, 0, 13) === "access_token="){
                $token = substr($response, 13);
            }
            return $token;
        }
        catch(\Exception $exc){
            return "";
        }
}
于 2013-06-01T16:56:50.903 回答