2017-08-16 5 views
0

J'ai implémenté la liaison de compte avec succès, mais je ne recycle aucun accessToken à mon point de terminaison de traitement.
Le champ AccessToken est vide dans le fichier json envoyé à mon point de terminaison d'exécution.Ne pas recevoir de jeton d'accès

Json Reçue à Accomplissement

Array 
(
[user] => Array 
    (
     [userId] => 1502895338751 
     [locale] => en-US 
    ) 

[conversation] => Array 
    (
     [conversationId] => 1502895338751 
     [type] => ACTIVE 
     [conversationToken] => {"state":null,"data":{}} 
    ) 

[inputs] => Array 
    (
     [0] => Array 
      (
       [intent] => actions.intent.TEXT 
       [rawInputs] => Array 
        (
         [0] => Array 
          (
           [inputType] => KEYBOARD 
           [query] => talk to APPNAME 
          ) 

        ) 

       [arguments] => Array 
        (
         [0] => Array 
          (
           [name] => text 
           [rawText] => talk to APPNAME 
           [textValue] => talk to APPNAME 
          ) 

        ) 

      ) 

    ) 

[surface] => Array 
    (
     [capabilities] => Array 
      (
       [0] => Array 
        (
         [name] => actions.capability.AUDIO_OUTPUT 
        ) 

       [1] => Array 
        (
         [name] => actions.capability.SCREEN_OUTPUT 
        ) 

      ) 

    ) 

[device] => Array 
    (
    ) 

[isInSandbox] => 1 
) 

Pas tout à fait sûr de ce qu'il faut faire à ce stade, coincé ici depuis plus d'une semaine. J'ai contacté AOG soutien, mais ils ne semblent undestand ce que im essayant de dire:/

enter image description here

Ma réponse de l'accomplissement si le accessToken ne se trouve pas

header('Content-Type: application/json'); 
    $askToken = array (
    'conversationToken' => '{"state":null,"data":{}}', 
    'expectUserResponse' => true, 
    'expectedInputs' => 
    array (
    0 => 
    array (
     'inputPrompt' => 
     array (
     'initialPrompts' => 
     array (
      0 => 
      array (
      'textToSpeech' => 'PLACEHOLDER_FOR_SIGN_IN', 

     ), 
     ), 
     'noInputPrompts' => 
     array (
     ), 
    ), 
     'possibleIntents' => 
     array (
     0 => 
     array (
      'intent' => 'actions.intent.SIGN_IN', 
      'inputValueData' => 
     (object) array (
     ), 
     ), 
    ), 
    ), 
), 
); 
echo json_encode($askToken); 
exit(); 
+0

Comment demandez-vous un lien de compte (afficher le code ou les captures d'écran) et cela fonctionne-t-il? Pouvez-vous afficher une capture d'écran de la section Liaison de compte de la console Actions? – Prisoner

+0

Oui, mon serveur OAUTH2.0 fonctionne parfaitement (testé avec Google OAUTH Playground). Je ne reçois aucune option de connexion pour l'utilisateur lors des tests sur le simulateur. – Elo97234c

+0

Utilisez-vous API.AI ou gactions? Comment déclenchez-vous la connexion? – Prisoner

Répondre

1

Puisque vous n'êtes pas En utilisant API.AI, vous devez initier la demande de liaison de compte lors de la réalisation de l'une de vos intentions - probablement votre intention de bienvenue. Le JSON que vous devez renvoyer dans ce cas ressemble à quelque chose comme


{ 
    "conversationToken": "{\"state\":null,\"data\":{}}", 
    "expectUserResponse": true, 
    "expectedInputs": [ 
    { 
     "inputPrompt": { 
     "initialPrompts": [ 
      { 
      "textToSpeech": "PLACEHOLDER_FOR_SIGN_IN" 
      } 
     ], 
     "noInputPrompts": [] 
     }, 
     "possibleIntents": [ 
     { 
      "intent": "actions.intent.SIGN_IN", 
      "inputValueData": {} 
     } 
     ] 
    } 
    ] 
} 
+0

J'ai fait ce qui suit, maintenant tout l'assistant dit "Désolé, je n'ai pas eu de réponse", "Désolé, je n'ai pas compris" – Elo97234c

+0

Veuillez mettre à jour votre question originale avec toute information supplémentaire - logs et le JSON vous envoyez et recevez après avoir envoyé la demande de connexion. – Prisoner

+0

D'accord, je l'ai mis à jour – Elo97234c