1

Facebook用の非常にシンプルなチャットボットを開発したので、Facebookが新しいファイルfb.txtに送信するJSONファイルを保存しました。このJSONでは、メッセージング配列のフィールドの1つがFacebookから送信されたテキストでしたが、もはやそのようには見えません。Facebookのchat webhookは送信者のテキストを持つJSONを送信しません - IDのみ

<?php 

if (isset($_REQUEST['hub_challenge'])) { 
    $challenge = $_REQUEST['hub_challenge']; 
    $token = $_REQUEST['hub_verify_token']; 
} 

if($token == "macross93") { 
    echo $challenge; 
} 

$input = json_decode(file_get_contents('php://input'), true); 

$userID = $input['entry'][0]['messaging'][0]['sender']['id']; 

$message = $input['entry'][0]['messaging'][0]['message']['text']; 

echo $userID." and ".$message; 
file_put_contents("fb.txt", file_get_contents($userID)); 

$access_token="EAAElJTd6foABAGhCjYcL3ikrPMFkOZBihqb5jzVZCuCnJd8oL4jFZAZCV26EYiOXGLzkz6lKZAMDXBKDsFwWFVYBVfSguV2ZCZCgGNCOLCxWWHQYC8of3DJks4AmEAVFo2DB29TajZBGQDUYtQqOWaig3M2m5ioeOElY7CPXZB3eEgAZDZD"; 

$url="https://graph.facebook.com/v2.8/me/messages?access_token=EAAElJTd6foABAGhCjYcL3ikrPMFkOZBihqb5jzVZCuCnJd8oL4jFZAZCV26EYiOXGLzkz6lKZAMDXBKDsFwWFVYBVfSguV2ZCZCgGNCOLCxWWHQYC8of3DJks4AmEAVFo2DB29TajZBGQDUYtQqOWaig3M2m5ioeOElY7CPXZB3eEgAZDZD"; 

$jsonData = "{ 
    'recipient': { 
    'id': $userID 
    }, 
    'message': { 
     'text': 'finally, the bait is over' 
    } 
}"; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); 
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); 

if(!empty($input['entry'][0]['messaging'][0]['message'])) { 
    curl_exec($ch); 
} 

そして、私は今、受け取るJSONは次のとおりです。

{ 
    "object": "page", 
    "entry": [{ 
     "id": "632423650282074", 
     "time": 1489785206037, 
     "messaging": [{ 
      "sender": { 
       "id": "892399990863615" 
      }, 
      "recipient": { 
       "id": "632423650282074" 
      }, 
      "timestamp": 1489785206027, 
      "read": { 
       "watermark": 1489785205361, 
       "seq": 0 
      } 
     }] 
    }] 
} 

任意のアイデア私のことができるようにするために使用するようなメッセージを読むにはどのように?

答えて

1

JSONレスポンスはに対応しています。ユーザがメッセージを読むと、Facebookからのイベントコールバックペイロードが読み込まれます。 documentation hereを参照してください。

あなたが興味を持っているのはmessage callbackです。ウェブフックの設定を確認して、メッセージイベントコールバックを購読していることを確認してください。

webhook event subscription

関連する問題