使用新的Facebook Graph API,事情变得更简单但文档记录更少.以下是我只能从服务器端(不是浏览器会话的一部分)php脚本加载我的墙贴的方法:
如果您还没有可用于此项目的应用程序,请创建一个Facebook应用程序
http://www.facebook.com/developers/apps.php#!/developers/createapp.php
- 并设置沙箱/开发人员模式!@高级设置>沙盒模式>启用(只允许应用程序的开发人员看到它.)您需要在该应用程序的开发者帐户摘要中列出的应用程序ID(APP_ID)和密钥(SECRET_KEY),但不是旧API密钥.
在浏览器中加载,已作为您希望服务器端应用程序连接的帐户登录到fb,然后单击"允许"以获取所请求的权限:
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
从生成的url的查询字符串中复制"code"参数,在以下位置使用:
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
现在使用你刚刚获得ala的誓言访问令牌从图形api或经典rest api下载(其中SOURCE_ID是用户/组的facebook id /你正在查找的内容):
注意到图形api和rest api不仅返回不同的结构,还返回不同的信息 - 所以在这里,我更喜欢其余api(第一个)的结果,即使我喜欢能够限制新图形中的字段api(第二个).
有关官方(稀疏)详细信息,请参阅"请求扩展权限"和"在Web应用程序中验证用户"部分中的http://developers.facebook.com/docs/authentication/.
如果你想这样做,即以编程方式,这里是步骤2 + 3的自动化版本:
将其作为"facebook_access_token.php"放在您的Web服务器上:
并将浏览器中的用户指向:
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
使用新的Facebook Graph API,事情变得更简单但文档记录更少.以下是我只能从服务器端(不是浏览器会话的一部分)php脚本加载我的墙贴的方法:
如果您还没有可用于此项目的应用程序,请创建一个Facebook应用程序
http://www.facebook.com/developers/apps.php#!/developers/createapp.php
- 并设置沙箱/开发人员模式!@高级设置>沙盒模式>启用(只允许应用程序的开发人员看到它.)您需要在该应用程序的开发者帐户摘要中列出的应用程序ID(APP_ID)和密钥(SECRET_KEY),但不是旧API密钥.
在浏览器中加载,已作为您希望服务器端应用程序连接的帐户登录到fb,然后单击"允许"以获取所请求的权限:
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
从生成的url的查询字符串中复制"code"参数,在以下位置使用:
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
现在使用你刚刚获得ala的誓言访问令牌从图形api或经典rest api下载(其中SOURCE_ID是用户/组的facebook id /你正在查找的内容):
注意到图形api和rest api不仅返回不同的结构,还返回不同的信息 - 所以在这里,我更喜欢其余api(第一个)的结果,即使我喜欢能够限制新图形中的字段api(第二个).
有关官方(稀疏)详细信息,请参阅"请求扩展权限"和"在Web应用程序中验证用户"部分中的http://developers.facebook.com/docs/authentication/.
如果你想这样做,即以编程方式,这里是步骤2 + 3的自动化版本:
将其作为"facebook_access_token.php"放在您的Web服务器上:
并将浏览器中的用户指向:
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
如果你想最终想要使用PHP,使用Facebook PHP SDK v3(参见github),这很简单.要记录具有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"URL请求offline_access
权限:
if (!$user) { $args['scope'] = 'offline_access'; $loginUrl = $facebook->getLoginUrl($args); }
然后在模板中显示链接:
Login with Facebook
然后,您可以检索脱机访问令牌并将其存储.要获得它,请致电:
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');
希望有所帮助!
不久前我在博客上做了一个教程.它不需要任何插件或诸如此类的东西,它是用PHP完成的,我已经测试过了.我做的主要是墙贴,但在你认证后,你可以使用你想要的任何功能.
编辑:帖子不再存在.FB API无论如何都会更新......
您希望首先阅读身份验证指南中的" 服务器端流程"部分.基本上,从这个URL开始:
https://www.facebook.com/dialog/oauth
将您的应用程序ID(此处提供)添加到URL,在OAuth中说明如下client_id
:
https://www.facebook.com/dialog/oauth?client_id=184484190795
添加offline_access
权限或scope
OAuth用语:
https://www.facebook.com/dialog/oauth?client_id=184484190795&scope=offline_access
添加一个redirect_uri
Facebook将在用户完成授权步骤后重定向到的位置("允许"或"不允许",查看文档以获取响应格式或只是尝试一下):
https://www.facebook.com/dialog/oauth?client_id=184484190795&scope=offline_access&redirect_uri=https%3A%2F%2Ffbrell.com%2Fecho
如果你按照上面的链接,它将带你到一个提示,然后点击允许/不允许它将带你到一个"回声"支持请求的页面.如果单击"允许",您将获得一个code
参数,您可以access_token
通过从服务器向Facebook发出HTTP请求来交换参数,这样做的内容如下:
https://graph.facebook.com/oauth/access_token?client_id=184484190795&client_secret=XXX&code=YYY&redirect_uri=ZZZ
你需要在你通过client_id
,你的应用程序的秘密必须通过在作为client_secret
,同样的redirect_uri
,你先前使用和code
你收到的响应.这将返回该用户的offline_access
启用状态access_token
.
但要记住的一件事是,即使您请求offline_access
您的应用程序必须优雅地处理无效或过期的access_tokens,因为这可能由于各种原因而发生.