繁体   English   中英

创建Facebook apprequests

[英]Creating facebook apprequests

我正在尝试在特定事件发生时从应用程序向用户发送消息。 现在我有这个代码

$param = array(
   'message'      => 'XYZ shared a file with you',
   'data'         => 'additiona_string_data',
   'access_token' => $facebook->getAccessToken(),
);
$tmp = $facebook->api("/$uid/apprequests", "POST", $param);

但我总是得到Uncaught OAuthException: (#2) Failed to create any app request thrown

我不知道问题出在哪里。

您应该阅读请求文档。
有关两种不同类型的请求的探索。

您需要的是应用程序生成的请求 ,这意味着您将需要应用程序访问令牌而不是用户。

我假设您正在使用用户访问令牌,因为您没有在代码示例中包含facebook对象的启动,并且可能已经验证了用户,因此getAccessToken()调用将返回用户访问令牌而不是应用程序访问令牌。

我有点困惑“我正在尝试在特定事件发生时从应用程序向用户发送消息。现在我有这个代码”的意思。

  1. 当有人在墙上发帖时向用户发送电子邮件

  2. 向用户发送活动邀请

  3. 向用户发送应用邀请

  4. 在发生类似'XYZ与您共享文件'之类的事情时,在用户墙上写字。

回答

  1. 您需要用户的emailread_stream权限。 使用RealTime更新监视他的墙,然后使用您的服务器SMTP向他发送电子邮件。

  2. 有关如何创建活动邀请,请参阅http://developers.facebook.com/docs/reference/api/event/#invited

  3. 正如@Lix指出的那样,请参阅https://developers.facebook.com/docs/channels/#requests

  4. 您应该使用新的Open Graph对象/操作来完成此操作。 请参阅此示例: https//developers.facebook.com/docs/beta/opengraph/tutorial/

您可以通过以下方式接收Facebook应用访问令牌

https://graph.facebook.com/oauth/access_token?client_id=FB_APP_ID&client_secret=FB_APP_SECRET&grant_type=client_credentials

使用Facebook PHP SDK发布应用程序到用户请求的工作代码示例(在需要时添加错误处理):

$facebook = new Facebook(array(
  'appId'  => FB_APP_ID,
  'secret' => FB_APP_SECRET,
));

$token_url = "https://graph.facebook.com/oauth/access_token?" ."client_id=" . 
   FB_APP_ID ."&client_secret=" . FB_APP_SECRET ."&grant_type=client_credentials";

$result = file_get_contents($token_url);
$splt = explode('=', $result);
$app_access_token =$splt[1];

$facebook->setAccessToken($app_access_token);

$args = array(
    'message' => 'MESSAGE_TEXT',

);
$result = $facebook->api('/USER_ID/apprequests','POST', $args);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM