我已经使用Actions SDK在Google上构建了Action。我希望能够以编程方式在服务器上更新actions.json。我不想使用助手CLI。是否有REST API或其他更新文件的方式?
答案 0 :(得分:1)
我能够嗅探Google与cli行动之间的交流。
更新操作
这是您可以使用的curl
请求。不要忘记添加您的Bearer
(授权),在--data-binary
之后,您将包括您的actions.json
。最后一件事是,使用操作ID(替换testskill
)最后更改端点URL。
curl
-H 'Host: actions.googleapis.com'
-H 'content-type: application/json'
-H 'authorization: Bearer AuthorisationKeyAsRandomStrings'
-H 'user-agent: Gactions-CLI/2.2.4 (darwin; amd64; dev/NsZwRCulTKhlPxMfp)'
--data-binary '{"localizedActionPackages":{"de":{"actions":[{"description":"Default welcome intent","fulfillment":{"conversationName":"testskill"},"intent":{"name":"actions.intent.MAIN","trigger":{"queryPatterns":["sprechen mit test skill"]}},"name":"MAIN"},{"description":"test intent","fulfillment":{"conversationName":"testskill"},"intent":{"name":"test_intent","parameters":[{"name":"color","type":"org.schema.type.Color"}],"trigger":{"queryPatterns":["suchen ein $org.schema.type.Color:color schuhe","kaufen ein $org.schema.type.Color:color shuhe","kaufen"]}},"name":"Test"},{"description":"ciao","fulfillment":{"conversationName":"testskill"},"intent":{"name":"ciao_intent","trigger":{"queryPatterns":["ciao","bye","pa"]}},"name":"Ciao"}],"conversations":{"testskill":{"name":"testskill","url":"https://ae8e6xx.ngrok.io/testskill"}},"locale":"de"}},"name":"agents/testskill"}'
--compressed 'https://actions.googleapis.com/v2/agents/testskill:batchUpdateAllDraftActionPackages'
但是我们无法保证将来会成功,因为Google可以在不通知任何人的情况下更改端点。因此,我建议坚持使用CLI。
在没有gactions CLI的情况下获取令牌
授权后,您将获得令牌。这需要与另一个curl请求一起发送。您需要将PlaceYourUrlEncodedTokenHere
替换为令牌,但需要对其进行url编码。
curl
-H 'Host: accounts.google.com'
-H 'content-type: application/x-www-form-urlencoded'
-H 'authorization: Basic MjM3ODA3ODQxNDA2LW82dnUxdGprcThvcWp1YjhqaWxqNnZ1YzM5NmUyZDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tOjZ1TlVQakZvd3pVRThTbGlWWlg2a2VZMA=='
-H 'user-agent: Go-http-client/2.0'
--data-binary "code=PlaceYourUrlEncodedTokenHere&grant_type=authorization_code&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob"
--compressed 'https://accounts.google.com/o/oauth2/token'
此后,您将收到来自Google的json响应,其中包含access_token
。您将以Bearer
的身份添加到您的请求中。
答案 1 :(得分:0)
从昨天开始,我在动作cli上遇到问题,当我尝试更新我的actions.json时,我的oauth出现了这个错误
错误401:disabled_client OAuth客户端已禁用。