質問: Googleのspeech APIを使用したいと考えているのですが、 上記のクイックスタートのところですでに躓いています。 具体的には上記のクイックスタートドキュメント内にある > > curl を使用して speech:syncrecognize リクエストを行い、出力したアクセス トークンとステップ 1 で設定した > > JSON リクエストのファイル名を渡します。 > > > を実行したのち期待した音声認識の結果が戻ってこず、エラーが戻ってきます。 コマンドは ``` curl -s -k -H "Content-Type: application/json" -H "Authorization: Bearer アクセストークンの文字列" https://speech.googleapis.com/v1beta1/speech:syncrecognize -d @sync-request.json ``` と投げた結果、以下のエラーが戻ってきます。 ``` { "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" } } ``` サービスアカウントキーを作成して、アクセストークンも取得しているのですが、どこがまずいのでしょうか?
回答: > > Expected OAuth 2 access token, login cookie or other valid > > authentication credential. > > > とあるのでAccessKey作成時にOAuthの設定をしていませんでしょうか? キーは指定されているもののOAuthの認証情報が付加されていないので表示されているエラーと思います。 とりあえず使用したいということならば、制限なしキーを作成します。 GCPコンソール>API Manager>認証情報>認証情報を作成>APIキー よりキーを作成後「キーを制限」を押さずに「閉じる」を押してキーを作成してみてください その後 ``` export SPEECH_API_KEY=あなたのキー curl -v -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1beta1/speech:syncrecognize?key=${SPEECH_API_KEY}" ``` (「とりあえずCloudSpeechAPIを使いたい」というご質問ではなく「OAuth2認証を使ったgoogle cloud speech APIを使用したい」という質問でしたら見当違いな回答となりますのでご指摘ください)