2017-08-16 183 views
0

我已经成功实施了帐户链接,但是不会将任何访问权限提交到我的履行终点。
发送到我的履行终点的json中的AccessToken字段为空。未接收访问令牌

的Json接收到履行

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 
) 

不太清楚在这一点上做的,现在困在这里了一个多星期。我接触AOG支持,但他们不似乎已了解了我尝试说:/

enter image description here

从履行我的回答如果的accessToken没有找到

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

你是如何请求帐户链接(显示代码或屏幕截图),并且这是否正常工作?您能否显示操作控制台的帐户链接部分的屏幕截图? – Prisoner

+0

是的,我的OAUTH2.0服务器工作完美(通过Google OAUTH Playground测试)。我只是在模拟器上测试时没有获得用户的任何登录选项。 – Elo97234c

+0

你使用API​​.AI还是gactions?你如何触发登录? – Prisoner

回答

1

既然你不使用API​​.AI,您需要在履行其中一项意向时启动帐户关联请求 - 可能是您的欢迎意向。在这种情况下你需要发回的JSON看起来像


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

我按照你的说法做了以下工作,现在所有的助理都说“对不起,我没有得到任何回应”,“对不起,我不明白” – Elo97234c

+0

请更新您的原始问题,并附上任何其他信息 - 日志和JSON您在发送登录请求后发送和接收邮件。 – Prisoner

+0

好的,我更新了它 – Elo97234c