如何从其他用户获取访问令牌

时间:2015-06-08 13:51:50

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

我需要阅读facebook上的帖子。我创建了应用程序,如果我使用我的凭证登录,程序就可以运行。但是当我使用另一个凭证(就像我刚刚创建的另一个配置文件)进行登录时,该程序已不再适用。这是我的登录页面:

$config = array(
        'appId' => APPID,
        'secret' => APPSECRET,
        'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
);

$facebook = new Facebook($config);
$user_id = $facebook->getUser();

if(!empty($_SESSION)) {

if($user_id) {


    try {

        $user_profile = $facebook->api('/me','GET');




        $login_url = $facebook->getLoginUrl(array('scope' => 'user_posts'));
        $access_token=$facebook->getAccessToken();
        $facebook->setAccessToken($access_token);

    } catch(FacebookApiException $e) {


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



    $login_url = $facebook->getLoginUrl(array('scope' => 'user_posts'));

    header("Location: ".$login_url);

}

当我登录时,我获得了访问令牌,我调用了图api:

  

https://graph.facebook.com/ ****** /讯息?=的access_token **

如果我是谁登录了应用程序,这是操作工作。如果在应用程序中再次登录这不起作用。 也许这是一个身份验证问题。也许我忘了我必须用另一个帐户对authenticntica做的一些操作。有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:1)

您需要将您的应用程序提交到Facebook,然后Facebook将检查并通过您的应用程序,然后您可以访问您的应用程序其他帐户。如果要检查应用程序功能,可以使用Facebook App测试用户ID。下面我已经解释了如何获得测试用户

  1. 转到应用页面。
  2. 点击角色。
  3. 点击右角测试用户。
  4. 它将显示您的测试用户详细信息。
  5. 使用此详细信息并访问您的应用程序。

答案 1 :(得分:0)

您必须从这里向所有用户公开您的应用:https://developers.facebook.com

看看它: enter image description here

答案 2 :(得分:0)

在API调用中使用 / me / feed 代替 / me

见下面的例子

<强>权限

  • 您的应用需要来自创建帖子的人员或帖子中标记的人员的 user_posts权限。然后您的应用可以阅读:
  • 授予您许可的人的时间线帖子。
  • 其他人在该人时间线上发布的帖子。
  • 其他人标记该人的帖子。
  • 如果您尝试从您的应用尚未授权访问的Feed中读取数据,则该调用将返回一个空数组。

请阅读此主题https://stackoverflow.com/questions/30719556/read-post-from-facebook-home/30732874#30732874

<强>阅读

import random

tab = []

for i in range(1, 8):
    item = random.choice(["house", "word", "computer", "table", "cat", "enter", "space"])
    if item not in tab:
        print(item)
    else:
        tab.append(item)
        continue