Tag: 谷歌 助理 SDK

Google Assistant SDK拒绝认证频道为“UNAUTHENTICATED”

我正在尝试在Kotlin为我的Raspberry Pi创建一个Google智能助理。 我使用本IETF草案中提出的所谓“设备流程”实现了OAuth流程,因为我的Raspberry稍后将公开一个Web界面,并且没有任何输入设备或图形界面。 谷歌确实支持这个流程(当然),我最终得到用户同意的有效访问令牌。 为了测试的目的,我也尝试了一个默认授权流程,只是将用户转发到本地主机,因为它通常已经完成,但并没有解决问题。 我使用这个工具测试了访问令牌,并确认了范围和令牌的有效性。 所以令牌本身应该工作。 范围是: https : //www.googleapis.com/auth/assistant-sdk-prototype(如此处所述)这实际上并不指向任何有效的Web资源,而是在每个文档中引用。 然后,我尝试使用gRPC提供的Java存根将音频数据流式传输到助理SDK端点。 如第三方参考实现作为指导如何认证rpc存根。 但是这个参考实现和我自己的都不起作用。 他们都报告 io.grpc.StatusRuntimeException: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. 存根以这种方式进行validation: embeddedAssistantStub.withCallCredentials( MoreCallCredentials.from(OAuth2Credentials .newBuilder() .setAccessToken( myAccessToken, myAccessTokenExpirationDate)) .build())) 并且认证的请求被执行如下: val observer = authenticatedEmbeddedAssistantStub.converse(myStreamObserverImplementation) observer.onNext(myConfigConverseRequest) while(more audio data frames […]