微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Facebook API PHP在someones墙上发布

是否有可能编写一个在某人墙上发布消息的应用程序,如果该用户尚未接受该权限,则此时会提示这样做?

这是我的代码

$attachment =  array(
        'access_token' => $access_token,
        'message' => "$message",
        'name' => "testName",
        'description' => "Check Out new message",
        'link' => '',
        'picture' => "test message"
    );

    try {
        $response = $facebook->api("/userId/Feed/", 'POST', $attachment);
    } catch (FacebookApiException $e) {

    }

解决方法:

以下是我为了文档目的而在一段时间内就此主题撰写的内容.希望它可以帮助你:

使用Facebook Graph API创建应用程序
2012年1月27日

Facebook入门
要开始使用Graph API构建Facebook应用程序,您首先需要在07年开始编码之前注册Facebook.创建帐户或使用现有帐户登录后,您将需要创建一个新的应用程序(或如果您使用的是现有应用,请正确配置应用).
要创建您的Facebook应用程序,请转到https://developers.facebook.com/apps并单击“创建新应用程序”(或“编辑应用程序”,如果您已经创建了一个并且想要配置它).在Settings-> Basic选项卡下,您至少需要填写App display Name,Contact E-Mail和Site URL.其中,站点URL是最重要的,必须指向应用程序驻留的位置(如果您还不知道,这可以在以后更新).接下来,转到Settings-> Auth Dialog选项卡.您不需要填写任何内容,但这是一个好主意,因为这是用户在允许您的应用访问其帐户时将看到的内容.保存所有内容并返回到https://developers.facebook.com/apps.您应该看到您刚刚在此页面上配置的应用程序.从这一点开始,您需要复制的两件事是App ID / API Key和App Secret.您现在可以开始创建应用程序了.

了解流程
在开始编写应用程序代码之前,最好先了解验证用户并在其Facebook帐户上安装应用程序的流程.在您的应用安装在用户帐户上并且他们已向应用明确授予将内容发布到其帐户的权限之前,您将无法执行任何操作.好消息是,用户只需要对应用程序进行一次身份验证(除非他们将其卸载).请查看下图以了解流程的工作原理:

验证用户
要启动身份验证过程,您必须构建一个链接,将用户引导至您的应用程序.这是您构建链接的方式:
https://www.facebook.com/dialog/oauth?client_id=[YourAPI KEY]& redirect_url = [将处理身份验证的服务]& scope = [你需要的权限]& display = touch
– client_id:这是您在创建应用程序时从Facebook获得的API密钥.
– redirect_url:这是将处理所有身份验证的服务.它应位于您使用Facebook设置应用程序时配置的站点URL.这是URL必须在整个身份验证过程中保持不变.
– 范围:这是用户帐户所需的任何权限.你应该只询问你真正需要的东西.我们通常只需要publish_stream.有关权限的完整列表,请参阅:https://developers.facebook.com/docs/reference/api/permissions/
显示:这是告诉Facebook使用什么皮肤的东西.由于我们将此用于移动应用程序,因此您应将其设置为“触摸”.如果您不是为移动设备开发,可以一起省略.

用户单击您构建的链接时,如果他们已登录,他们将被带到下面的页面.如果他们没有登录,将提示他们先登录.如果用户接受您的应用程序,拒绝您的应用程序请求,或者无法登录,则会将其定向到您在上面指定的redirect_url.根据用户在此页面上的操作,Facebook会在向用户发送用户时将不同的查询字符串附加到您的redirect_url.

如果用户单击“允许”,它们将被发送到您的redirect_url,查询字符串将包含一个名为code的变量.这是您将用于获取用户的身份验证令牌的权限,允许您从应用程序访问其帐户.如果用户单击“不允许”,无法登录或出现其他错误,则会将以下查询字符串附加到redirect_url:error_reason,error和error_description.
成功请求重定向网址的示例:
=“&GT HTTP://niobiumstudio.com/appia/fbconnect/auth.PHP代码= AQDi7fT3whSPJr0O2ECwv494QSSNyrTFK_sgiexEFUGmw5XS8SvzfYiAsxpn0FspQYHkMgaUYH – PS1AnJnCtE-iUdRl6V3Moxfk4Cqz0igZbnkHxWi4Yl_KphXiRkbnccw_zDqb4W2lfew9sla4FPDUKhXscRuQeI – 61uQ0uStb9GwrOH4V94DjGWk1yS-FFS#=

一旦您将代码GET变量传递回redirect_url,您就可以与Facebook交换它以获取您的OAuth访问令牌.为此,您需要使用刚刚返回的代码向Facebook建立请求.以下是获取访问令牌的请求:
https://graph.facebook.com/oauth/access_token?client_id=[Your API Key]& redirect_url = [处理身份验证的服务]& client_secret = [Your App Secret]& code = [用户验收码]
client_id:这是您在创建应用程序时从Facebook获得的API密钥.
redirect_url:这是将处理所有身份验证的服务.它应位于您使用Facebook设置应用程序时配置的站点URL.这是URL必须在整个身份验证过程中保持不变.这将是您用来获取代码的相同网址
client_secret:这是您在创建应用程序时从Facebook获得的App Secret Code.
代码:这是您在上一个请求的查询字符串中返回的代码.

成功发出此请求后,您将收到OAuth访问令牌,该令牌允许您访问用户的Facebook帐户.这是身份验证的最后一步.与“代码”不同,访问令牌将位于响应主体中,而不是作为GET变量.以下是成功的响应:
=的access_token&AAAB9BKw79ywBAPjNYxRwLhUE1mogd3Ei1Nq2gPXxyWhiCISZAZA6ihZAor1NEPHRjuQ5x7NrkA7ITuV2IHVZBs6ZAaigbNdsMnX3l58RrQAZDZD放大器;期满= 5862
您必须解析访问令牌,这将是您将使用访问用户帐户的内容.另请注意,存在与访问令牌一起发送的过期值.您将无法存储此访问令牌,并在以后的任何时候使用它.您必须立即使用它来执行您需要的操作然后丢弃它.
如果获取访问令牌的请求失败,您将收到正文中的错误而不是访问令牌和到期.与访问令牌不同,它将采用JSON格式,因此请注意这一点.
*有关身份验证过程的详细信息,请参阅:https://developers.facebook.com/docs/authentication/

发布到用户的帐户
现在您已拥有访问令牌,您将能够访问用户的帐户,直到令牌过期.可以使用各种权限执行许多操作,但由于我们只询问了publish_stream,因此本文档仅涵盖更新用户的状态消息.
要更新用户的状态,我们必须对以下URL发出POST请求:
https://graph.facebook.com/me/Feed?access_token=[Access Token]
access_token:这是您从身份验证过程中获得的访问令牌.
POST应该包含一个名为message的变量.消息变量是一个字符串,无论它设置为什么,用户的状态消息将被设置为什么.
如果您使用cURL和PHP发出POST请求,这就是“Hello World”请求的样子
$fb_post_url =“https://graph.facebook.com/me/feed?access_token=”.$access_token;
$message_text =“Hello World!”;

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$fb_post_url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,“message =”.$message_text);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
$fb_post_response = curl_exec($ch);
curl_close($ch)
POST请求将在响应的正文中返回“成功”或“失败”JSON消息.

有关发布到用户帐户的更多信息,请参阅:
http://developers.facebook.com/docs/reference/api/status/

验证已经接受您的应用程序的用户
用户已经接受您的应用程序后,当他们点击您的应用程序时,他们将不再被提示“接受”您的应用程序,因为它已经安装.身份验证过程保持完全相同,除非他们单击将其带到身份验证页面链接,Facebook将确定应用程序已被接受,只需将用户转发到redirect_url,并将代码附加到查询字符串.如果用户尚未登录,则需要登录他们的Facebook帐户,但他们将永远不必再次“接受”您的应用程序.如果您将来更改应用程序并添加其他权限,则下次他们尝试使用您的应用程序时,系统将提示他们仅接受新权限.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐