首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook offline access分步操作

Facebook offline access分步操作
EN

Stack Overflow用户
提问于 2009-06-29 18:06:28
回答 7查看 61K关注 0票数 57

更新:Facebook offline_access权限正被弃用。有关详细信息,请参阅official documentation

您将拥有2012年5月1日的截止日期,届时此设置将被禁用。有关更多信息,请参阅Developer Roadmap

在facebook和google上搜索了一天后,找到了一种最新的工作方式来做一些看似简单的事情:

我正在寻找一步一步的解释来获得一个脸书应用程序的用户的offline_access,然后使用这个(会话密钥)来检索离线&而不是在浏览器中的朋友和个人资料数据。

最好是在Fb Java API中执行此操作。

谢谢。

是的,我确实查看了facebook的维基。

更新:有人吗?

这个:http://www.facebook.com/authorize.php?api_key=<api-key>&v=1.0&ext_perm=offline_access给了我offline_Access,但是如何检索这个session_key呢?

为什么facebook不能只做简单的文档,我的意思是有600个人在那里工作?

看似相同的问题:Getting offline_access to work with Facebook没有回答如何检索会话密钥

编辑:我仍然坚持这一点。我猜还没有人真正尝试过这样的批量访问……

EN

回答 7

Stack Overflow用户

发布于 2010-07-15 03:31:31

有了新的Facebook Graph API,事情变得更简单了,但文档却少了很多。为了能够从服务器端(不是浏览器会话的一部分) php脚本加载我在墙上发布的帖子,我这样做了:

  1. 如果您还没有可用于此项目http://www.facebook.com/developers/apps.php#!/developers/createapp.php的应用程序,请创建一个facebook应用程序--并将沙箱/开发人员模式设置为!@高级设置>沙箱模式>启用(只允许您的应用程序的开发人员看到它。)你需要应用程序ID (APP_ID)和密钥(SECRET_KEY),它们列在应用程序的开发者帐户摘要中,但不需要旧的

密钥。

  1. 在浏览器中加载,已经作为你希望服务器端应用程序连接的帐户登录到fb,并为请求的权限单击“允许”:从结果url的查询字符串中https://graph.facebook.com/oauth/authorize?client_id=APP_ID&scope=offline_access,read_stream&redirect_uri=http://www.facebook.com/connect/login_success.html
  2. copy“代码”参数,在:https://graph.facebook.com/oauth/access_token?client_id=APP_ID&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=APP_SECRET&code=CODE_FROM_2中使用该参数,并将access_token=的右侧复制到结果页面的文本中。它的结构如下: APP_ID|HEXNUM-USER_ID|WEIRD_KEY
  3. now使用刚刚获得的oath访问令牌从graph api或经典rest api下载(其中SOURCE_ID是您正在查找的用户/组/任何内容的facebook ):

注意,图api和rest api不仅返回不同的结构,而且返回不同的信息--所以在这里,我更喜欢来自rest api (第一个)的结果,尽管我喜欢能够限制新的图api (第二个)中的字段。

有关官方(稀疏)的详细信息,请查看“请求扩展权限”和“在Web应用程序中验证用户”部分中的http://developers.facebook.com/docs/authentication/

如果你想例行公事地做到这一点,比如通过编程,下面是steps 2+3的自动化版本:

将其作为“facebook_access_token.php”放在您的web服务器上:

代码语言:javascript
复制
<?php $token = explode('=', file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=APP_ID&redirect_uri=http://$_SERVER[SERVER_NAME]$_SERVER[PHP_SELF]&client_secret=APP_SECRET&code=" . 
(get_magic_quotes_gpc() ? stripslashes($_GET['code']) : $_GET['code']))); 
echo $token[1]; 
// store this, the access token, in the db for the user as logged in on your site -- and don't abuse their trust! ?>

并将用户在其浏览器中定向到:https://graph.facebook.com/oauth/authorize?client_id=APP_ID&scope=offline_access,read_stream&redirect_uri=http://www.example.com/facebook_access_token.php

票数 63
EN

Stack Overflow用户

发布于 2011-05-29 00:58:20

如果您最终想通过Facebook PHP SDK v3 (see on github)使用PHP,那么它非常简单。要使具有offline_access权限的用户登录,请在生成登录URL时询问该权限。下面是你如何做到这一点的。

获取脱机访问令牌

首先,检查用户是否已登录:

代码语言:javascript
复制
require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET,
));

$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}

如果他不是,你会生成一个“登录Facebook”的网址,请求offline_access权限:

代码语言:javascript
复制
if (!$user) {
    $args['scope'] = 'offline_access';
    $loginUrl = $facebook->getLoginUrl($args);
}

然后在模板中显示链接:

代码语言:javascript
复制
<?php if (!$user): ?>
    <a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>

然后,您可以检索并存储脱机访问令牌。要获取它,请调用:

代码语言:javascript
复制
if ($user) {
    $token = $facebook->getAccessToken();
    // store token
}

使用脱机访问令牌

要在用户未登录时使用离线访问令牌,请执行以下操作:

代码语言:javascript
复制
require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET,
));

$facebook->setAccessToken("...");

现在,您可以为此用户进行API调用:

代码语言:javascript
复制
$user_profile = $facebook->api('/me');

希望这能有所帮助!

票数 11
EN

Stack Overflow用户

发布于 2009-10-03 17:56:21

不久前我在我的博客上做了一个教程。它不需要任何插件或诸如此类的东西,它是用PHP完成的,我已经测试过了。我这样做主要是为了墙上的帖子,但在你认证之后,你可以使用任何你想要的功能。

编辑:帖子不再存在。FB API无论如何都会更新...

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1059640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档