从 Facebook Graph API 获取访问令牌

     2023-03-16     211

关键词:

【中文标题】从 Facebook Graph API 获取访问令牌【英文标题】:Getting an access token from the Facebook Graph API 【发布时间】:2016-03-09 15:40:59 【问题描述】:

我正在尝试使用 facebook graph api 在他们的网站上显示运动队的 facebook 状态更新,但似乎无法获得有效的访问令牌。

这是我的代码。

require_once APPPATH.'/third_party/facebook-php-sdk-v4/src/Facebook/autoload.php';

$fb = new Facebook\Facebook([
    'app_id' => '123123123123',
    'app_secret' => 'fghdfghtyjdfghdghjfghjfghj', 
    'default_graph_version' => 'v2.5'
]);

$fb->setDefaultAccessToken('123123123123|dfhjfgytdfghdfhgdsfjd');

$helper = $fb->getCanvasHelper();

try 
  $accessToken = $helper->getAccessToken();
 catch(Facebook\Exceptions\FacebookResponseException $e) 
  // When Graph returns an error
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
 catch(Facebook\Exceptions\FacebookSDKException $e) 
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;


if (isset($accessToken)) 
  // Logged in.
 else 
    echo 'access token not set - THIS IS WHERE I ALWAYS SEEM TO END UP';

exit;

有什么明显的我做错了吗?

【问题讨论】:

你是先按权限获取代码吗?类似于: $permissions = ['manage_pages, publish_actions']; $loginUrl = $helper->getLoginUrl(URL::to('/your-redirect-url'), $permissions); 可能不会...我使用的所有代码都显示在这里... 如果页面是公开的,那么您可以使用您的应用访问令牌来请求数据。否则,您将需要获取页面访问令牌或能够查看页面的用户的用户访问令牌。更多关于不同种类的令牌以及如何获得它们:developers.facebook.com/docs/facebook-login/access-tokens 顺便说一句,在这里尝试使用 canvasHelper 没有任何意义,如果我理解正确的话,您甚至都没有在 on 画布上,但该应用程序位于外部网站上. @CBroe 如果我说实话,我对我必须做的事情的了解有限(好像这还不是很明显),所以我只是在尝试一切都在我得到一些结果之前!不过,我会查看您建议的链接。谢谢 【参考方案1】:

这是我在 Laravel 4 应用程序中用来连接的。基本上当用户点击“登录”按钮时, 1- 使用 app_id、app_secret 和 default_graph_version 创建 Facebook 实例。 2- 获取 redirectLoginHelper 对象以获取 loginUrl,其中包含 facebook 在您调用 $helper->getLoginUrl($redirectUrl, (array) $permissionsNeeded) 时将提供的代码 3-重定向到该网址 4- 再次创建 facebook 实例和 getRedirectLoginHelper 作为第 1 步和第 2 步 5-检查您是否在帮助返回的 url 中收到了“code”参数 6- 获取访问令牌:$accessToken = $helper->getAccessToken()

在我提供的代码中,我以一种方法完成所有这些步骤。我检查请求中是否有代码参数,如果没有,我请求它并重定向。下次代码运行时,当我检查代码是否存在时,它会继续下一步

$fb = new Facebook([
    'app_id' => 'facebook_app_id',
    'app_secret' => 'facebook_app_secret',
    'default_graph_version' => 'v2.5',
]);

$helper = $fb->getRedirectLoginHelper();

if(Input::get('code') == '') 
    $permissions = ['manage_pages, publish_actions'];
    $loginUrl = $helper->getLoginUrl('http://yoururl.dev/uri', $permissions);

    return Redirect::to($loginUrl);


try 
    $accessToken = $helper->getAccessToken();
 catch(Facebook\Exceptions\FacebookSDKException $e) 
    //Handle error

在这种情况下,登录按钮转到 www.domain.app/connect,redirectLoginHelper 返回的 URL 相同,但带有 code 参数:www.domain.app/connect?code=ntasd341251

【讨论】:

Facebook Graph API:如何访问用户电影?

】FacebookGraphAPI:如何访问用户电影?【英文标题】:FacebookGraphAPI:Howtoaccessusermovies?【发布时间】:2015-05-2522:25:31【问题描述】:我想从第三方应用读取/写入用户电影列表。它可以编辑吗?我在docs中没有找到任何相关部分?我想... 查看详情

从 Facebook Graph-API 获取用户图像

】从FacebookGraph-API获取用户图像【英文标题】:GetuserimagefromFacebookGraph-API【发布时间】:2011-08-1601:12:09【问题描述】:我想在列表视图中显示用户的个人资料图片。当我尝试从android调用graph-api来检索图像时,我总是收到以下错误... 查看详情

从 facebook graph API 获取全尺寸图片

】从facebookgraphAPI获取全尺寸图片【英文标题】:GetfullsizedpicturefromfacebookgraphAPI【发布时间】:2015-03-1313:14:02【问题描述】:我正在使用图形api端点/PAGE_ID/posts从facebook页面获取所有帖子。现在我想要这些帖子中的全尺寸图片。返... 查看详情

从 facebook-group-album 中的 graph-api 获取视频网址

】从facebook-group-album中的graph-api获取视频网址【英文标题】:Getvideo-urlsfromgraph-apifromafacebook-group-album【发布时间】:2019-03-1316:49:23【问题描述】:我有一个公共facebook组。在这个组里,我可以得到所有专辑curlhttps://graph.facebook.com/v... 查看详情

Graph API 访问公共 Facebook 页面时返回“假”或“不支持的获取请求”

】GraphAPI访问公共Facebook页面时返回“假”或“不支持的获取请求”【英文标题】:GraphAPIreturns\'false\'or\'Unsupportedgetrequest\'accessingpublicFacebookPage【发布时间】:2011-10-1404:49:27【问题描述】:我在一些粉丝专页和使用FacebookGraphAPI获... 查看详情

iOS 我可以从 Graph api Facebook 获取上传进度吗?

】iOS我可以从GraphapiFacebook获取上传进度吗?【英文标题】:IosCanigetUploadprogressfromGraphapiFacebook?【发布时间】:2015-01-2910:30:48【问题描述】:在我的应用程序中,我需要将视频上传到用户的Facebook墙上。我使用此代码并且它有效:... 查看详情

使用 javascript SDK 从 facebook graph api 获取个人资料图片

】使用javascriptSDK从facebookgraphapi获取个人资料图片【英文标题】:GetprofilepicturefromfacebookgraphapiusingjavascriptSDK【发布时间】:2018-11-1922:30:33【问题描述】:当我尝试使用facebookgraphapi获取facebook个人资料图片时,它显示未定义的respon... 查看详情

如何从 Facebook graph api iOS 获取具有特定 ID 的图像?

】如何从FacebookgraphapiiOS获取具有特定ID的图像?【英文标题】:howtogetanimagewithspecificidfromFacebookgraphapiiOS?【发布时间】:2014-07-0102:57:59【问题描述】:在我的应用程序中,我试图从Facebook页面照片/相册中获取特定图像。我可以在N... 查看详情

使用 graph Api 获取 Facebook 页面事件

】使用graphApi获取Facebook页面事件【英文标题】:GetFacebookPagesEventsusinggraphApi【发布时间】:2013-05-3106:05:05【问题描述】:我正在尝试使用facebookgraphapi从页面配置文件中获取facebook事件。我使用的方法如下HttpClientclient=newDefaultHttpCl... 查看详情

Facebook Graph API:从某个位置获取每个签到时间的信息

】FacebookGraphAPI:从某个位置获取每个签到时间的信息【英文标题】:FacebookGraphAPI:Gettinginformationoneachcheckintimefromalocation【发布时间】:2012-02-2018:00:50【问题描述】:有没有一种方法可以通过FacebookGraphAPI获取某个位置的每次签到... 查看详情

使用 facebook graph API v3.2 从其他 user_id 获取数据

】使用facebookgraphAPIv3.2从其他user_id获取数据【英文标题】:Getdatafromotheruser_idwithfacebookgraphAPIv3.2【发布时间】:2019-02-1309:27:00【问题描述】:我想知道是否可以在Facebook中获取具有公开个人资料(显然)的用户的基本数据(姓名... 查看详情

Graph API v2.0 之后,Apple Calendar 如何获取 Facebook 好友的生日?

】GraphAPIv2.0之后,AppleCalendar如何获取Facebook好友的生日?【英文标题】:HowdoesAppleCalendargetFacebookfriends\'birthdaysafterGraphAPIv2.0?【发布时间】:2016-09-1912:03:41【问题描述】:Facebook已限制从GraphAPI2.0访问用户的朋友。但是,我仍然看... 查看详情

Facebook Graph API 拒绝新创建的访问令牌

】FacebookGraphAPI拒绝新创建的访问令牌【英文标题】:FacebookGraphAPIrejectsnewlycreatedaccesstoken【发布时间】:2018-05-0122:01:25【问题描述】:今天早些时候,我们的Web应用程序的Facebook登录流程对某些用户停止工作。当我们尝试获取当... 查看详情

Facebook iOS SDK(Graph API) 无法访问公共页面信息

】FacebookiOSSDK(GraphAPI)无法访问公共页面信息【英文标题】:FacebookiOSSDK(GraphAPI)can\'taccesspublicpageinformation【发布时间】:2013-09-0920:05:49【问题描述】:所以我正在尝试使用iOSSDK通过Facebook图形API获取页面名称:NSDictionary*params=[NSDicti... 查看详情

Facebook Graph API 获取墙帖的方形图片

】FacebookGraphAPI获取墙帖的方形图片【英文标题】:FacebookGraphAPIgetsSquarepictureofwallpost【发布时间】:2013-03-2609:37:01【问题描述】:从这个question,我知道我们可以通过在GraphAPIURL中附加?type=square来获取方形的用户头像,例如:https:... 查看详情

如何使用新的 facebook graph api v2.4 从页面获取事件

】如何使用新的facebookgraphapiv2.4从页面获取事件【英文标题】:Howtogeteventsfromapagewiththenewfacebookgraphapiv2.4【发布时间】:2015-07-0912:21:37【问题描述】:之前,这会返回一个事件列表:clubversuz/活动现在它返回一个名为“数据”的空... 查看详情

Facebook Graph API,如何获取用户电子邮件?

】FacebookGraphAPI,如何获取用户电子邮件?【英文标题】:FacebookGraphAPI,howtogetusersemail?【发布时间】:2011-04-0609:59:46【问题描述】:我正在使用GraphAPI,但我不知道如何获取登录用户的电子邮件地址。Graph的介绍中指出“GraphAPI可... 查看详情

使用 Graph api 获取 Facebook 页面率和评论

】使用Graphapi获取Facebook页面率和评论【英文标题】:GetfacebookpagerateandreviewsusingGraphapi【发布时间】:2014-01-0507:26:03【问题描述】:我正在创建网站以使用图形API搜索地点。我从图形API获得了地点的详细信息。有什么方法可以通... 查看详情