更新: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没有回答如何检索会话密钥
编辑:我仍然坚持这一点。我猜还没有人真正尝试过这样的批量访问……
发布于 2010-07-15 03:31:31
有了新的Facebook Graph API,事情变得更简单了,但文档却少了很多。为了能够从服务器端(不是浏览器会话的一部分) php脚本加载我在墙上发布的帖子,我这样做了:
http://www.facebook.com/developers/apps.php#!/developers/createapp.php的应用程序,请创建一个facebook应用程序--并将沙箱/开发人员模式设置为!@高级设置>沙箱模式>启用(只允许您的应用程序的开发人员看到它。)你需要应用程序ID (APP_ID)和密钥(SECRET_KEY),它们列在应用程序的开发者帐户摘要中,但不需要旧的密钥。
https://graph.facebook.com/oauth/authorize?client_id=APP_ID&scope=offline_access,read_stream&redirect_uri=http://www.facebook.com/connect/login_success.htmlhttps://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注意,图api和rest api不仅返回不同的结构,而且返回不同的信息--所以在这里,我更喜欢来自rest api (第一个)的结果,尽管我喜欢能够限制新的图api (第二个)中的字段。
有关官方(稀疏)的详细信息,请查看“请求扩展权限”和“在Web应用程序中验证用户”部分中的http://developers.facebook.com/docs/authentication/。
如果你想例行公事地做到这一点,比如通过编程,下面是steps 2+3的自动化版本:
将其作为“facebook_access_token.php”放在您的web服务器上:
<?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
发布于 2011-05-29 00:58:20
如果您最终想通过Facebook PHP SDK v3 (see on github)使用PHP,那么它非常简单。要使具有offline_access权限的用户登录,请在生成登录URL时询问该权限。下面是你如何做到这一点的。
获取脱机访问令牌
首先,检查用户是否已登录:
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权限:
if (!$user) {
$args['scope'] = 'offline_access';
$loginUrl = $facebook->getLoginUrl($args);
}然后在模板中显示链接:
<?php if (!$user): ?>
<a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>然后,您可以检索并存储脱机访问令牌。要获取它,请调用:
if ($user) {
$token = $facebook->getAccessToken();
// store token
}使用脱机访问令牌
要在用户未登录时使用离线访问令牌,请执行以下操作:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$facebook->setAccessToken("...");现在,您可以为此用户进行API调用:
$user_profile = $facebook->api('/me');希望这能有所帮助!
发布于 2009-10-03 17:56:21
不久前我在我的博客上做了一个教程。它不需要任何插件或诸如此类的东西,它是用PHP完成的,我已经测试过了。我这样做主要是为了墙上的帖子,但在你认证之后,你可以使用任何你想要的功能。
编辑:帖子不再存在。FB API无论如何都会更新...
https://stackoverflow.com/questions/1059640
复制相似问题