发布到用户的墙壁而无需在线/登录 - 使用Graph API共享Facebook
-
25-10-2019 - |
题
嗨,我是Facebook共享的新手。我想使用他的UID登录用户登录,然后将它们存储在进一步的用途中
主要目的是在用户墙中共享链接
下一次,我想通过Ajax将Facebook窗口显示在他的墙上。
如何对此有任何帮助!
编辑
我使用了给定的示例,然后尝试了卷曲功能
有这个错误
HTTP/1.1 403 Forbidden
Cache-Control: no-store
Content-Type: text/javascript; charset=UTF-8
Expires: Sat, 01 Jan 2000 00:00:00 GMT
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Pragma: no-cache
WWW-Authenticate: OAuth "Facebook Platform" "insufficient_scope" "(#200)
This API call requires a valid app_id."
Set-Cookie: datr=g4JBTb4OsRZxBAztV7iIkpWg; expires=Sat, 26-Jan-2013 14:34:43 GMT;
path=/; domain=.facebook.com; httponly
X-Cnection: close
Date: Thu, 27 Jan 2011 14:34:43 GMT
Content-Length: 93
{"error":{"type":"OAuthException","message":"(#200)
This API call requires a valid app_id."}}
编辑以便有人发现有用
Facebook连接
$facebook_connect = array(
'appId' => 'YOUR APP_ID',
'secret' => 'YOUR SEC KEY',
'access_token'=>"USER'S ACCESS TOKEN",
'cookie' => true
);
张贴到用户墙
$facebook->api("/PROFILE_ID/feed", "post", array(
"message"=>"Hi Friends Join ****",
"name"=>"You're invited to join ****!",
"link"=>"www.****.com",
"description"=>"Great site",
"picture"=>"http://www.****.com/logo.jpg",
"caption"=>"Join *****"
)
解决方案
我建议您开始学习Facebook Graph API首先工作的方式。
- Facebook会 绝不 与您共享用户密码!
- 如果您只需要给用户共享链接的可能性,则只需使用 喜欢插件. 。您可能还会发现更多有趣的 社交插件 在您的网站中使用。
- 如果使用类似插件,它将不会打开任何弹出窗口,并且会将链接直接发布到用户墙上。
- 你总是可以使用 提要对话
- 开始阅读 Facebook文档
现在要在用户的墙上发布(代表他) 没有 他被登录,您需要以下内容:
- 应用程序
access_token
publish_stream
允许, 没必要 对于长寿命的访问令牌:
使您的应用程序可以将内容,评论和喜欢的用户流以及用户朋友的流中发布。这是一个超集发布权限,还包括publish_actions。但是,请注意,Facebook建议使用用户启动的共享模型。请阅读平台策略,以确保您了解如何正确使用此许可。注意,您无需请求prubly_stream权限即可使用“ feed”对话框,“请求”对话框或“发送”对话框。
需要许可:
这可以通过多种方式完成:
使用 登录插件:
<div class="fb-login-button" 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
$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建议使用用户启动的共享模型
不隶属于 StackOverflow