簡體   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