如果不使用API.ai或NodeJS SDK,是否有可能或在路線圖中開發自己的Google操作?Google上的操作的其他SDK或REST API?
回答
這已經是可能的:我用Java構建一個對話行動的一個非常小的例子與Vert.x:https://github.com/Ithildir/actions-on-google-vertx-sample
在這裏你可以找到關於HTTP協議的詳細信息:https://developers.google.com/actions/reference/conversation
請注意Google正在積極推動api.ai的發展。你可以使用任何語言來接收/生成沒有api.ai的json,但它可能不會持續。 Google已經癱瘓了節點sdk,強迫你使用api.ai. –
謝謝安德烈亞斯,我會看看它。 Bela,我不喜歡很多開發者所做的圖形界面,所以如果Google/api.ai不提供簡單的界面,Google Actions將失敗 –
可以實施操作在使用JAX-RS的Google兼容webhook上。例如,這個Java庫模擬Google記錄的HTTP協議:https://github.com/l0s/google-actions-conversation-api。有關更多詳情,請參閱文檔。示例實現如下:
@Path("/webhook")
@Consumes("application/json")
@Produces("application/json")
@POST
public ConversationResponse handle(final ConversationRequest request,
@Context final HttpServletResponse servletResponse) {
servletResponse.setHeader("Google-Assistant-API-Version", "v1");
final SpeechResponse speechResponse = new SpeechResponse();
speechResponse.setTextToSpeech("Hello!");
final FinalResponse finalResponse = new FinalResponse();
finalResponse.setSpeechResponse(speechResponse);
final ConversationResponse response = new ConversationResponse();
response.setConversationToken(request.getConversationToken());
response.setFinalResponse(finalResponse);
return response;
}
請注意,您將需要配置JSON串行器/解串器deserialisation過程中忽略未知的屬性和序列化過程中排除空或空字段。
您不需要使用該庫,但它可以讓您瞭解如何使用servlet實現webhook。此外,這種方法(無論是否有庫)不一定需要與JAX-RS一起使用。同樣的技術可以應用於無服務器解決方案,例如帶有Lambda的AWS API網關。
感謝Carlos,我使用了很多JAX-RS,它對於快速開發REST API。我正在尋找一個Go實現,這個respository是靈感的源泉 –
還有一個Java/Kotlin官方SDK的端口。它具有匹配的API和官方的所有功能。可在此處https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin – Patrick
現在Kotlin/Java還有另一種選擇。這是官方Actions on Google SDK的開源端口。官方的node.js SDK支持API.ai和Actions SDK(直接集成),而Kotlin/Java也支持。它正在開發中,但已接近100%完成,更多文檔/示例即將推出。 https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin
- 1. Paypal API - REST API或SDK(Java)
- 2. Android上的Google Drive Rest API
- 3. 通過REST API讀取其他用戶的Google Fit數據
- 4. 其他操作
- 5. Google雲API的其他API Key證書
- 6. Google上的操作
- 7. REST API之上的SDK - 開銷?
- 8. 用於驗證參數,REST或其他的Web服務API?
- 9. 保護我的Django REST API(基本認證或其他)
- 10. Google Firebase數據庫管理SDK API與REST API的性能
- 11. Parse.com Rest API - 操作陣列
- 12. 多個操作-REST API
- 13. 其他REST風格的方法和操作幹
- 14. Yii2 REST其他動作
- 15. 使用複雜SQL操作的REST API
- 16. REST API SkypeBot建議的操作
- 17. Google Cloud DNS REST上的403錯誤Api
- 18. REST API:模型或控制器中的CRUD操作
- 19. 如何通過REST API提及Confluence上的其他用戶?
- 20. Rest Rest Framework的其他調用
- 21. 針對文件上的多個操作的REST API
- 22. CodeIgniter Rest API + Facebook SDK
- 23. C#有沒有LINQ到HTML或其他一些好的.Net HTML操作API?
- 24. 未在Google Home設備上被其他用戶調用的測試操作
- 25. 使用swagger或任何其他工具生成Rest API文檔
- 26. REST API:如何搜索其他屬性
- 27. Rest API或Semi Rest API
- 28. UIWebView操作中的NSLog(或其他監控事件)
- 29. Google地圖REST API
- 30. Google TDD或測試環境上的操作
我已經添加了一個答案,但也會在這裏發表評論 - 有一個非官方的Java/Kotlin SDK是JVM最完整的選項。文檔/自述文件將很快更新,並且可以使用。 https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin – Patrick