2016-12-29 51 views
-1

更新:我改寫了這個腳本4次,我理解這一機制,但不幸的是我不明白有什麼遺漏。該錯誤代碼是一樣的..Facebook中的Messenger Messenger bot,我做錯了什麼?

<?php 
// parameters 
$hubVerifyToken = 'XXXXXX'; 
$accessToken = "xxxxxxxxxxxxxx"; 
// check token at setup 
if ($_REQUEST['hub_verify_token'] === $hubVerifyToken) { 
echo $_REQUEST['hub_challenge']; 
exit; 
} 
// handle bot's anwser 
$input = json_decode(file_get_contents('php://input'), true); 
$senderId = $input['entry'][0]['messaging'][0]['sender']['id']; 
$messageText = $input['entry'][0]['messaging'][0]['message']['text']; 
$answer = "I don't understand. Ask me 'hi'."; 
if($messageText == "hi") { 
    $answer = "Hello"; 
} 
$response = [ 
    'recipient' => [ 'id' => $senderId ], 
    'message' => [ 'text' => $answer ] 
]; 
$ch = curl_init('https://graph.facebook.com/v2.6/me/messages?access_token='.$accessToken); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($response)); 
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); 
curl_exec($ch); 
curl_close($ch); 
//based on http://stackoverflow.com/questions/36803518 

但是,如果我打開API的頁面,我得到了以下錯誤消息:

{ 
"error": { 
"message": "(#100) The parameter user_id is required", 
"type": "OAuthException", 
"code": 100, 
"fbtrace_id": "G8FOo08+EsE" 
} 
} 

如果user_id丟失,在哪裏以及如何能我寫呢?我應該用什麼user_id? PHP代碼不可能再使用了嗎?我應該使用例如this site而不是PHP?

+0

'所以,我發現這個PHP代碼中的視頻tutorial' - 瞧,你發現的問題。您遇到的問題是您在嘗試做某些事情時不理解其背後的API。現在,您正在尋找快速解決方案,而這將讓您無處可尋。那麼,你是否在複製粘貼代碼之後,可以將它們轉儲到腳本中並忘記它,或者是在瞭解所有這些應該如何工作之後? –

+0

之後,我「複製粘貼」代碼,我經歷了很多視頻,論壇和開發者網站的整個FB,但我仍然不是很瞭解這種機制。我很抱歉,但我處理它。所以如果你給我一個據點,那我一定能做到。無論如何,我感謝你:) – krisz44g

回答

-1

嘗試......

$response = [ 
    'recipient' => [ 'user_id' => $senderId ], 
    'message' => [ 'text' => $answer ] 
]; 
+0

謝謝,但不幸的是,它不適合我.. :( – krisz44g