2017-02-24 16 views
2

Google Natural Language APIは、昨日までの間、私のiOSアプリで動作していました。 APIは今朝の時点で「許可が拒否されました」というエラーを返すようになりました。例えば:Google Natural Language APIの権限拒否エラー

{ 
    "error": { 
     "code": 403, 
     "message": "The caller does not have permission", 
     "status": "PERMISSION_DENIED" 
    } 
} 

例要求:

POST /v1/documents:analyzeEntities?key=..... HTTP/1.1 
Host: language.googleapis.com 
Content-Type: application/json 
Connection: keep-alive 
X-Ios-Bundle-Identifier: ..... 
Accept: */* 
Accept-Language: en-us 
Content-Length: 291 
Accept-Encoding: gzip, deflate 
User-Agent: CardScanner/1 CFNetwork/808.2.16 Darwin/15.6.0 

{"encodingType":"UTF8","document":{"type":"PLAIN_TEXT","content":"....."}} 

請求は、($ 0バランスで)アカウントに対して有効になっています。アカウントには試用期間中に36日間も残っています。

キーはGoogle Cloud Platform APIダッシュボードの値と一致します。私はまた、キーを再生成し、アプリで新しいキーを使用してみました。

また、iOSデバイスのキーの制限を有効にしてみました。アプリのバンドルIDとともに「X-Ios-Bundle-Identifier」ヘッダーが含まれています。

このアプリは、問題なく動作するGoogle Vision APIも使用しています。 Vision APIの呼び出しは、キーの制限の変更に対応します。

demo pageから発信された電話には、権限エラーメッセージも表示されます。しかし、API explorerからのコールは機能します。

編集:

エラーもdemo on the product web page上で起こっています。

enter image description here

編集:以下

はデモのページから取り込んだHTTPリクエストとレスポンスの例であるチャールズのエラーをトレースすると、同じ応答をWebページに戻され、「許可が拒否されました」と表示します。

:method: POST 
:authority: language.googleapis.com 
:scheme: https 
:path: /v1/documents:analyzeEntities?key=..... 
content-length: 250 
origin: https://cloud.google.com 
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 
content-type: text/plain;charset=UTF-8 
accept: */* 
referer: https://cloud.google.com/natural-language/ 
accept-encoding: gzip, deflate, br 
accept-language: en-US,en;q=0.8 

{"document":{"type":"PLAIN_TEXT","content":"Google, headquartered in Mountain View, unveiled the new Android phone at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."},"encodingType":"UTF16"} 

HTTPレスポンス:

私のアプリは、HTTP 1.

HTTPリクエストを使用しているのに対し、要求と結果の誤差は、デモがHTTP 2を使用しているように見えることを除いて、私のアプリとほぼ同じです

:status: 403 
vary: Origin 
vary: X-Origin 
vary: Referer 
content-type: application/json; charset=UTF-8 
content-encoding: gzip 
date: Sun, 26 Feb 2017 14:52:24 GMT 
server: ESF 
cache-control: private 
content-length: 128 
x-xss-protection: 1; mode=block 
x-frame-options: SAMEORIGIN 
x-content-type-options: nosniff 
access-control-allow-origin: https://cloud.google.com 
access-control-expose-headers: content-encoding,date,server,content-length 
alt-svc: quic=":443"; ma=2592000; v="35,34" 

{ 
    "error": { 
    "code": 403, 
    "message": "The caller does not have permission", 
    "status": "PERMISSION_DENIED" 
    } 
} 

答えて

1

私は同じ行動を経験しています。私はそれがGoogleの最終段階では文書化されていない変更だと思います。

APIキーで十分であることを示す文書があるにもかかわらず、OAuth経由での呼び出しが可能になりました。ごく最近まで、APIキーのみで呼び出し、キーに制限が設定されていない場合でも呼び出しを行うことができました。

documentation pageについての私の "答え"は、ドキュメントが動作に適合しないと不平を言うことです。私はこのページの文言が最近変更されたかもしれないと思うが、テスト目的でAPIキーが機能するはずだと示唆している。

+0

これは妥当な結論であるようです。ウェブページ/ iOSアプリからOAuthを使用してAPIにアクセスできましたか?私が理解しているように、OAuthはスーパー秘密の秘密鍵(またはその行に沿ったもの)を含める必要があるため、バックエンドサーバから使用することを意図しています。 –

+0

詳細な調査では、OAuthを超秘密情報なしで使用することができます。 AppAuthライブラリは役に立ちます:https://openid.github.io/AppAuth-iOS/ –

+0

@Apoorv Saxenaからのコメントは以下の通りです。 – sahmeepee

0

Google Cloud Vision APIのデモページの[TRY NATURAL LANGUAGE API]ボタンも機能しません。いくつかのバグのように見える、我々はこの問題を認識しており、現在は修正されなければならない

Natural Language API progress indefinite loop

3

...彼らはすぐにそれを修正したいと考えています。同じ問題がまだ見える場合はお知らせください。

+0

修正をリリースしました。この問題がまだ表示されている場合はお知らせください。 –

関連する問題