2017-07-24 84 views
0

我的配送完成点未接收到accessToken。这是正常的吗? 当模拟器即时通讯模式下,它并不真正要求登录到我的授权终点,因此,它不会得到一个访问令牌。在与Oauth Play Ground进行测试后,我的Oauth正在完美地工作。未在模拟器上接收AccessToken

action.json

{ 
"accountLinking": { 
    "clientId": "",   // SENSITIVE INFORMATION BLANK 
    "clientSecret": "",  // SENSITIVE INFORMATION BLANK 
    "grantType": "AUTH_CODE", 
    "authenticationUrl": "",  // SENSITIVE INFORMATION BLANK 
    "accessTokenUrl": ""   // SENSITIVE INFORMATION BLANK 


    }, 
    "actions": [{ 
     "description": "", 
     "name": "MAIN", 
     "fulfillment": { 
      "conversationName": "PASS TEXT" 
     }, 
     "intent": { 
      "name": "actions.intent.MAIN", 
      "trigger": { 
       "queryPatterns": [ 
        "talk to APP NAME" 
       ] 
      } 
     } 
    }], 

"conversations": { 
     "PASS TEXT": { 
      "name": "PASS TEXT", 
      "url": "" // MY FULFILLMENT END POINT 
      "fulfillmentApiVersion": 2 
     } 
    } 
} 

履行接收到的请求

请求被记录到一个文本文件中

jsondata = file_get_contents('php://input'); 
$postdata = json_decode($jsondata, true); 

$RAWfile = print_r($postdata, true); 
file_put_contents('RAWfile.txt', $RAWfile); 

RAWfile.txt

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

    [conversation] => Array 
     (
      [conversationId] => 1500924702161 
      [type] => NEW 
     ) 

    [inputs] => Array 
     (
      [0] => Array 
       (
        [intent] => actions.intent.MAIN 
        [rawInputs] => Array 
         (
          [0] => Array 
           (
            [inputType] => VOICE 
            [query] => ask APP NAME to bla bla 
           ) 

         ) 

        [arguments] => Array 
         (
          [0] => Array 
           (
            [name] => trigger_query 
            [rawText] => bla bla 
            [textValue] => bla bla 
           ) 

         ) 

       ) 

     ) 

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

       ) 

     ) 

    [device] => Array 
     (
     ) 

    [isInSandbox] => 1 
) 

模拟器上或请求

{ 
    "query": "bla bla", 
    "accessToken": "ya29.Gl2TBLrbKjcgK-6jsARmc4Zvkx8qT2X2rE3vsuwEVc_Ey2-q4OUqNWaJPBlXzIjONb_u2MbrE-rgnfwQSZpbZReXsmZjoGOy18Tvp7xzzSJb-cW9SjZ32uLBaKO7vGE", 
    "expectUserResponse": true, 
    "conversationToken": "CiZDIzU5O...", 
    "surface": "GOOGLE_HOME", 
    "inputType": "VOICE", 
    "locale": "en-US", 
    "location": { 
     "address": "Googleplex, Mountain View, CA, United States", 
     "position": { 
      "lat": 37.421980615353675, 
      "lng": -122.08419799804688 
     }, 
     "zipCode": "94043", 
     "city": "Mountain View" 
    }, 
    "debugInfo": { 
     "assistantToAgentDebug": { 
      "assistantToAgentJson": { 
       "user": { 
        "userId": "bla", 
        "locale": "en-US" 
       }, 
       "conversation": { 
        "conversationId": "1501004260313", 
        "type": "NEW" 
       }, 
       "inputs": [ 
        { 
         "intent": "actions.intent.MAIN", 
         "rawInputs": [ 
          { 
           "inputType": "VOICE", 
           "query": "bla" 
          } 
         ], 
         "arguments": [ 
          { 
           "name": "trigger_query", 
           "rawText": "bla", 
           "textValue": "bla" 
          } 
         ] 
        } 
       ], 
       "surface": { 
        "capabilities": [ 
         { 
          "name": "actions.capability.AUDIO_OUTPUT" 
         } 
        ] 
       }, 
       "device": {}, 
       "isInSandbox": true 
      } 
     } 
    } 
} 

模拟器响应

{ 
    "response": "Sure. Here's the test version of bla.\nsure\n", 
    "conversationToken": "bla", 
    "audioResponse": "//NExAASS...", 
    "debugInfo": { 
     "agentToAssistantDebug": { 
      "agentToAssistantJson": { 
       "conversationToken": "{\"state\":null,\"data\":{}}", 
       "expectUserResponse": false, 
       "finalResponse": { 
        "richResponse": { 
         "items": [ 
          { 
           "simpleResponse": { 
            "textToSpeech": "sure", 
            "displayText": "sure" 
           } 
          } 
         ], 
         "suggestions": [] 
        } 
       } 
      } 
     } 
    } 
} 

回答

1

帐户链接在https://console.actions.google.com/

从“概述”菜单项,通过操作控制台完成的,你需要获得第5步:帐户关联。

在那里,你可以设置你的终点,需要范围等

+0

我做到了,但它不模拟器上 – Elo97234c

+0

我更新了必要的信息工作,但使用它的动作仿真心不是:/ – Elo97234c

0

认为你必须手动完成的那部分 - 如果你在响应看,你会看到一个网址 - 复制/粘贴和运行即,它应该完成帐户链接过程 - https://developers.google.com/actions/identity/account-linking

“在日志区,复印和debugInfo.sharedDebugInfo.debugInfo领域的网址粘贴到您的网页浏览器,您会被重定向到认证URL您自己的服务器是在API.AI或Actions Console中指定的。“

+0

我张贴的模拟器请求/响应,但我不能古怪看到和URL – Elo97234c

+0

,我去检查我要比较,并有同样的问题。出去了,回到它,并重新测试,我得到了debugInfo,所以它似乎随机 – MadgeMan

+0

嗯,没有一种方法来报告错误。由于我没有看到URL。现在尝试了10次:3 – Elo97234c