当前位置: 首页 > 面试题库 >

无需在线/登录即可发布到用户墙-使用Graph API的Facebook共享

蒲深
2023-03-14
问题内容

嗨,我是Facebook分享的新手。我想让用户使用其uid登录,然后将其存储以备将来使用

主要目的是在用户墙上共享链接

下次再不显示Facebook窗口,我想通过Ajax发布到他的墙上。

对此有什么帮助将不胜感激!

编辑

我使用了给出的示例,然后尝试了curl函数

得到这个错误

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_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的工作方式。

  1. Facebook 绝不 会与您共享用户密码!
  2. 如果只需要让用户共享链接,则只需使用like插件。您可能还会发现更多有趣的社交插件可在您的网站中使用。
  3. 如果您使用like插件,它将不会打开任何弹出窗口,并且会将链接直接发布到用户的墙上。
  4. 您可以随时使用Feed对话框
  5. 开始阅读Facebook文档

现在要在 登录的 情况下 (代表他)张贴在用户的墙上,您需要执行以下操作:

  1. 应用程式 access_token
  2. publish_stream权限, 不需要 长期访问令牌:

使您的应用能够向用户流和用户朋友流发布内容,评论和喜欢的内容。这是一个超集发布许可,其中还包括publish_actions。但是,请注意,Facebook建议使用用户启动的共享模型。请阅读平台政策,以确保您了解如何正确使用此权限。注意,您不需要使用feed对话框,Requests对话框或Send对话框就可以请求publish_stream权限。

需要许可:
可以通过多种方式完成:
使用登录插件:

<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

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建议用户启动共享模型



 类似资料:
  • 问题内容: 我正在存储Facebook用户ID和访问令牌。我可以将此信息发布到所选用户的留言墙上吗?在这里可以找到以下代码:http : //developers.facebook.com/docs/reference/api/post/ 我只是不确定如何用php运行它。 问题答案:

  • 问题内容: 我正在尝试在Facebook页面的墙上张贴帖子。我可以使用App Access令牌在用户墙上发布信息。 通过扩展DefaultFacebookClient获得了应用程序访问令牌 有了这个,我可以使用appID和appSecret发布到用户墙。但是,当我尝试发布到Page Wall时,出现错误“用户未授权应用程序执行此操作” 有人可以建议吗? 问题答案: 应用程序访问令牌是最基本的令牌,

  • 我正在做一个研究项目,我需要在30台设备上安装一个应用程序,所有这些设备都没有谷歌帐户。我需要做的是将应用程序的结果保存在我的谷歌驱动器文件夹中(我有它的id)。目前这是我的登录过程,它要求一个谷歌帐户: 既然我知道我的凭据和我需要工作的目录的ID,有没有办法修改代码并将我的帐户合并到登录过程中,这样我就不需要在设备上配置google帐户?

  • 我想使用谷歌的REST API访问公共日历。 Google的日历API建议我需要OAuth令牌才能访问日历: https://developers.google.com/google-apps/calendar/auth 然而,我正在访问一个公共日历,并且正在服务器上执行此操作,因此不能/不应该要求用户进行身份验证。 我使用node.jsapi: 这将返回“您的客户端发出了一个格式错误或非法的请求

  • 我正在使用javascript sdk来实现facebook登录。是否可以将用户重定向到完整的登录页面而不是显示弹出窗口?我尝试添加show:'page',但这似乎无济于事。 谢谢

  • 我想开发的应用程序,我可以听歌曲从Spotify没有登录到it.like我们搜索从声音云和播放它。 我已经实现了用于搜索轨迹的API https://api.spotify.com/v1/search?q=Muse 它提供了我的曲目列表现在我怎么能玩它没有登录。 答案如下所示