私はPHPの開発者ではありませんが、javascript、node.js.で同じロジックを実装しています。私は詳細なステップとjavascriptコードを共有したいと思います。あなたの人生をより良くするためにできることを理解することができれば幸いです:P あなたが言ったように、あなたはapi呼び出しからuser_refを受け取ります。そのとおりです。ドキュメントをもう一度読んで、ユーザがチェックボックスのプラグインをチェックしたときにuser_refが受信されることを述べました。このuser_refはあなた自身によって設定され、ページがロードされるたびにこのuser_refは一意でなければならず、チェックボックスのプラグインのみがレンダリングされます。そして、その背後にある完全な論理がここにあります。 user_refを生成すると、ユーザーがチェックボックスをオンにしたときに、このuser_refを使用してuser_refを受け取ると、ユーザーにメッセージを送信します(user_refを使用してユーザーにメッセージを送信できます。ただし、senderIdを使用することをお勧めします) 。 user_refを使用してメッセージを送信すると、webhook apiはユーザーのsenderIdを含むレスポンスを返します。これは実際に私たちのアプリで通常使用するpsidです。これはあなたのdbに保存する必要があります。 ここで私のコードをここに入れます。 user_refを受信して、ユーザーにメッセージを送信: マイペイロード:
{"sender":{"id":"xxxxxxx"},"recipient":{"id":"xxxxxWhat you are looking for is this*******"},"timestamp":1504698781373,"message":{"is_echo":true,"app_id":xxxxxxxxxxxxxxx,"metadata":"INVITATION__REPLY__qwe__2017-09-05T02xo20__xxxxxxxx__063__yes","mid":"mid.$cAAGcxxxxxxxxVxuAtJ","seq":120162,"text":":)"}}
:
function sendTextMessageRef(user_ref, messageText,md) {
var messageData = {
recipient: {
user_ref: user_ref
},
message: {
text: messageText,
metadata: md
}
};
callSendAPI(messageData);
}
function callSendAPI(messageData) {
request({
uri: 'https://graph.facebook.com/v2.6/me/messages',
qs: { access_token: PAGE_ACCESS_TOKEN },
method: 'POST',
json: messageData
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
var recipientId = body.recipient_id;
var messageId = body.message_id;
if (messageId) {
console.log("Successfully sent message with id %s to recipient %s",
messageId, recipientId);
} else {
console.log("Successfully called Send API for recipient %s",
recipientId);
}
} else {
console.error("Failed calling Send API", response.statusCode, response.statusMessage, body.error);
}
});
}
さて、メッセージを送信した後、私は、ユーザーの送信者IDが含まれます。このJSON形式で応答を受け取ります
受信したjsonデータでは、recipient.idが探しているものです。 ここで私が自分のチャットで何をしたのかを理解するには、最初にチェックボックスのプラグインを選択します。私のサーバでコールを受け取ります。もしuser_refが含まれていればチェックします。 user_refを使用します。ユーザーがメッセージを受け取ると、webhookは上記の形式でjsonデータを送信します。このレスポンスを受け取ったuser_refを特定するために、私はいくつかの文字列+ user_refの組み合わせであるカスタムメタデータを設定します。これを使用して、user_refを使用して以前にメッセージを送信したユーザーのsender.idを特定します。 sender.idは私のpageidで、recipient.idはあなたが取得しようとしているユーザーIDで、通常はユーザーにメッセージを送り、psidとしても知られています。
希望あなたはまだ言及した上記の溶液を使用して、いくつかの問題を得れば、これはそれについて更新しない、助け:)
あなたは、あなたが加入しているページフィールド書くことができますか?この情報は、アプリケーション - メッセンジャー - 設定 - Webhooks - イベントの編集で確認できます。 – Norbert
@Norbert次のフィールドを確認しました。メッセージ、messaging_optins、messaging_postbacks –
あなたのイベントにページを購読しましたか? – Norbert