2016-06-29 10 views
16

Otrzymuję dziwny błąd podczas konfigurowania wiadomości powitalnej dla mojego bota Messenger. Używałem tego samego kodu (jak pokazano poniżej) i działało dobrze do ostatniej nocy. Próbowałem go zarówno z cURL i Postman. Żadne z nich nie działa.Dziwny błąd z platformą Messenger Messenger/bot Welcome Confugration

curl -X POST -H "Content-Type: application/json" -d '{ 
    "setting_type":"call_to_actions", 
    "thread_state":"new_thread", 
    "call_to_actions":[ 
    { 
     "message":{ 
     "text":"Welcome to My Company!" 
     } 
    } 
    ] 
}' "https://graph.facebook.com/v2.6/<PAGE_ID>/thread_settings?access_token=<PAGE_ACCESS_TOKEN>" 

Komunikat o błędzie podczas wykonywania powyższy kod:

{"error":{"message":"(#100) Invalid keys \"message\" were found in param \"call_to_actions[0]\".","type":"OAuthException","code":100,"fbtrace_id":"Hn42Wa+hapI"}}% 

mogę potwierdzić zarówno page_id i PAGE_ACCESS_TOKEN są prawidłowe, jak próbuje usunąć komunikat powitalny z następujący kod działa poprawnie.

curl -X POST -H "Content-Type: application/json" -d '{ 
    "setting_type":"call_to_actions", 
    "thread_state":"new_thread", 
    "call_to_actions":[ 
    { 
     "message":{ 
     "text":"Welcome to My Company!" 
     } 
    } 
    ] 
}' "https://graph.facebook.com/v2.6/<PAGE_ID>/thread_settings?access_token=<PAGE_ACCESS_TOKEN>" 

Również kod używam jest dokładnie taka sama, jak pokazano na Facebook official API doc. Nie rozumiem, dlaczego mówi "wiadomość" nie jest prawidłowym kluczem. Czy ktoś ma ten sam problem? Czy Facebook zmienił swoje API?

Każda pomoc będzie doceniona!

+1

Próbowałem rozwiązać ten problem przez wiele godzin. Cieszę się, że ludzie mają ten sam problem w taki sposób, że możemy potwierdzić, że ten błąd nie jest spowodowany przez nas. Może zmiana nieudokumentowanego interfejsu API? – ericls

+1

@ericls Myślę, że to nieudokumentowana zmiana interfejsu API. Mam nadzieję, że wkrótce otrzymają dalsze powiadomienie. –

+1

Błąd został zgłoszony tutaj: https://developers.facebook.com/bugs/1751749508372552/ – sigmus

Odpowiedz

-1

Ten błąd był spowodowany zmianą interfejsu API.

Nowe połączenie:

curl -X POST -H "Content-Type: application/json" -d '{ 
    "setting_type":"call_to_actions", 
    "thread_state":"new_thread", 
    "call_to_actions":[{ 
    "payload":"START" 
    }] 
}' "https://graph.facebook.com/v2.6/<PAGE_ID>/thread_settings?access_token=<PAGE_TOKEN>" 

Wystarczy dodać ładunek jak {"payload":"START"}

Jeżeli użytkownik naciśnie przyciski "Pierwsze kroki" przycisk, pojawi się ten ładunek w messageHandler (webhook). Sprawdź, czy $incomingMessage == "START" i odeślij swoją uporządkowaną wiadomość lub cokolwiek chcesz.

Wiadomości, takie jak wcześniej, nie są już obsługiwane.

raport Bug: https://developers.facebook.com/bugs/1751749508372552/

7

docs obecnie aktualizowany, trzeba określić swój ładunek w payload parametru teraz (ciąg UTF-8), np: zaktualizowane

"call_to_actions":[ 
    { 
     "payload":"USER_DEFINED_PAYLOAD" 
    } 
] 
+0

Zaktualizowany dokument również nie działa. Pojawił się następujący błąd: '{" error ": {" message ":" (# 3) Aplikacja musi znajdować się na białej liście "," typ ":" OAuthException "," code ": 3," fbtrace_id ":" FiDgnEghdY \/"}}' –

+0

To samo dla mnie - punkt końcowy "thread_settings" działał dobrze zaledwie 2 dni temu. Teraz po użyciu "ładunku" otrzymuję błąd białej listy. – andy250

+1

te @ leihe, na pewno twoja aplikacja nie jest w trybie piaskownicy (testowanie)? –

1

Otrzymuję ten sam problem i naprawię go. Myślę, że json wniosku jest

let messageData = { 
"setting_type":"call_to_actions", 
"thread_state":"new_thread", 
"call_to_actions":[ 
    { 
    "payload":"welcome_payload" 
    } 
] 
} 
request({ 
    url: 'https://graph.facebook.com/v2.6/me/thread_settings', 
    qs: {access_token:token}, 
    method: 'POST', 
    json: { 
     messageData 
    } 
} 

ale to nie będzie działać i zalogować powie nie masz „setting_type” = = A próbować ten jeden

request({ 
     url: 'https://graph.facebook.com/v2.6/me/thread_settings', 
     qs: {access_token:token}, 
     method: 'POST', 
     json: { 
      setting_type:"call_to_actions", 
      thread_state:"new_thread", 
      call_to_actions:[ 
       { 
       "payload":"welcome_payload" 
       } 
      ] 
     } 
    } 

to praca dla mnie.