1

Facebookのメッセンジャーによって発生したoptinイベントを聞いています。ドキュメントでは、{ 'sender': { 'id': 'USER_ID' } }というオブジェクトを受け取るべきだと言います。しかし、私が得たデータにはこの情報が欠落しています。私はoptinイベントを受け取り、残りのデータを取得しますが、私はsenderが見つかりません。Facebookのメッセンジャーオプティンイベントで送信者情報を取得するための追加要件はありますか?

私はこのようなルックスを得る応答:

"messaging"=>[{ 
    "recipient"=>{"id"=>"MY_PAGE_ID"}, 
    "timestamp"=>1503480281655, 
    "optin"=>{"ref"=>"PASS_THROUGH_PARAM", "user_ref"=>"5019"} 
}] 

私はウェブフックイベントを処理するためにfacebook-messenger宝石を使用しています。しかし私は、私が上記の応答を生成するために使用していたデータをチェックするために直接要求を傍受することに決めました。宝石は私を与えるオブジェクトは、次のようになります。

#<Facebook::Messenger::Incoming::Optin:0x007fe2829a4928 
    @messaging={ "recipient"=>{"id"=>"MY_PAGE_ID"}, 
       "timestamp"=>1503480091027, 
       "optin"=>{"ref"=>"PASS_THROUGH_PARAM", "user_ref"=>"58326"} 
       }> 

はここでどこがlistenのoptinイベントにです。

最後のoptinイベントを発生させるクリックハンドラが正確にFacebookのドキュメントごとです:

FB.AppEvents.logEvent('MessengerCheckboxUserConfirmation', null, { 
    'app_id':'<%= Figaro.env.facebook_app_id %>', 
    'page_id':'<%= Figaro.env.facebook_page_id %>', 
    'ref':'PASS_THROUGH_PARAM', 
    'user_ref':'<%= @uniq_user_ref %>' 
    }); 

ここ場合には、それは貴重だとfileの残りの部分です。

Facebookにこの情報が必要だと言うためにセットアップやパススルーが必要なことはありますか?

答えて

1

Send to Messengerプラグインの代わりにCheckboxプラグインを使用している可能性がありますか?チェックボックスのドキュメントでは、彼らは、以下の(強調鉱山)を言及:

コールバック

チェックボックスの状態を確認した場合はオプトインイベントの後、私たちはあなたのサーバにウェブフックイベントを掲載します。 このコールバックは、 オプトインコールバックと同じ形式ですが、送信者フィールドの代わりに、user_refフィールドを持つoptin オブジェクトを持っています。

+0

ドップ!ありがとうございました!私は彼らが同じイベントだと思っていて、チェックボックスの使用が異なるデータをもたらすことに気付かなかった。 –

関連する問題