我建议您首先学习Facebook Graph API的工作方式。
- Facebook 绝不 会与您共享用户密码!
- 如果只需要让用户共享链接,则只需使用like插件。您可能还会发现更多有趣的社交插件可在您的网站中使用。
- 如果您使用like插件,它将不会打开任何弹出窗口,并且会将链接直接发布到用户的墙上。
- 您可以随时使用Feed对话框
- 开始阅读Facebook文档
现在要在 不 登录的 情况下 (代表他)张贴在用户的墙上,您需要执行以下操作:
- 应用程式
access_token
publish_stream
权限, 不需要 长期访问令牌:
使您的应用能够向用户流和用户朋友流发布内容,评论和喜欢的内容。这是一个超集发布许可,其中还包括publish_actions。但是,请注意,Facebook建议使用用户启动的共享模型。请阅读平台政策,以确保您了解如何正确使用此权限。注意,您不需要使用feed对话框,Requests对话框或Send对话框就可以请求publish_stream权限。
需要许可:
可以通过多种方式完成:
使用登录插件:
<div data-show-faces="true" data-width="200" data-scope="publish_stream" data-max-rows="1"></div>
服务器端登录(重定向到OAuth对话框):
https://www.facebook.com/dialog/oauth? client_id=YOUR_APP_ID &redirect_uri=YOUR_URL &scope=publish_stream &state=SOME_ARBITRARY_BUT_UNIQUE_STRING
PHP-SDK:
$loginUrl = $facebook->getLoginUrl(array("scope"=>"publish_stream"));
JS-
SDK通过FB.login方法:
FB.login(function(response) { if (response.authResponse) { console.log('Welcome! Fetching your information.... '); FB.api('/me', function(response) { console.log('Good to see you, ' + response.name + '.'); FB.logout(function(response) { console.log('Logged out.'); }); }); } else { console.log('User cancelled login or did not fully authorize.'); } }, {scope: 'publish_stream'});
出版:
$USER_ID = "XXXXXXXX"; // Connected once to your APP and not necessary logged-in at the moment$args = array( 'message' => 'Hello from app', 'link' => 'http://www.masteringapi.com/', 'caption' => 'Visit MasteringAPI.com For Facebook API Tutorials!');$post_id = $facebook->api("/$USER_ID/feed", "post", $args);
注意:
尽管可以在用户不在场的情况下进行发布,但请务必记住,Facebook建议用户启动共享模型