如何在不登录或进行用户交互的情况下获取Facebook页面access_token

时间:2012-10-03 22:44:22

标签: php facebook api facebook-authentication

我一直在阅读Facebook文档,我必须遗漏一些东西,因为我无法理解如何获取页面的访问令牌而不先实际登录。我正在尝试使用PHP facebook API创建一个PHP函数,以便当我在我的网站上添加新故事或教程时,我的网站的应用程序可以自动发布为myy facebook页面上的页面。

我有这个功能,但只有当我从Graph API资源管理器获取访问令牌时,虽然访问令牌在大约一个小时后到期。我似乎无法弄清楚如何以编程方式获取页面的access_token并每次从我的PHP脚本中查询新的,因此它们不会过期,也不需要用户交互。

    function post_to_facebook($title, $message, $link, $picture) {

            require '../facebook/src/facebook.php';

            $page_token = 'xxx';

            $page_id = 'xx';

            $facebook = new Facebook(array(
                    'appId'  => '<app_id>',
                    'secret' => '<app_secret>',
                    'cookie' => false,
            ));

            $facebook->setAccessToken($page_token);

            try {
                    $ret_obj = $facebook->api('/'.$page_id.'/feed', 'POST', array(
                                            'caption' => $title,
                                            'link' => $link,
                                            'message' => $message,
                                            'picture' => $picture
                                     ));

            } catch(FacebookApiException $e) {
                    error_log($e->getType());
                    error_log($e->getMessage());

                    return false;
            }

            return true;
    }

有人可以解释如何在不通过图形api资源管理器查找或用户登录的情况下检索访问令牌吗?

1 个答案:

答案 0 :(得分:1)

这是不可能的。

实现访问令牌的唯一正确(和合法)方式是用户交互(通过登录过程)。