4

確かに他の誰かがAPIを使用しています。私は調べて検索しましたが、認証時にスコープパラメータに配置する正しい値が見つからないようです:

これらすべてのスコープ リストを調べましたが、何もありませんでした。OAuth 2.0 プレイグラウンドを試しましたが、翻訳はありません。

oauth プレイグラウンド v1

oauth プレイグラウンド v2

宣誓がサポートされているスコープ

認証スコープ

どんな手がかりも歓迎します、ありがとう。

エラーメッセージ:

Error: invalid_request

Missing required parameter: scope

Learn more
Request Details

アップデート

ユーザー Ezra は、翻訳 API には OAuth2 認証は必要ないと説明しました。

私はこの道でこの道を下った:

ここでサンプルコードを機能させようとしていました:

翻訳APIサンプルコード

そして apiclient.discovery モジュールを持っていませんでした

from apiclient.discovery import build

ここで自動生成 された翻訳APIプロジェクトを提供してくれたこのクイックスタートコンフィギュレーターにたどり着いたものを探しに行きました:

Translation API 用に調整されるはずのこのスターター プロジェクトには、多数の OAuth 構成が含まれているため、ここで言及されているエラーのために質問することになりました。

 exception calling translation api: <HttpError 400 when requesting    https://www.googleapis.com/language/translate/v2?q=zebra&source=en&alt=json&target=fr&key=MYSECRETKEYWENTHERE returned "Bad Request">

この方法でエラーになる呼び出しを行うために使用しているコードは次のとおりです。

   service = build('translate', 'v2',
        developerKey='MYSECRETKEYWENTHERE')
result = service.translations().list(
  source='en',
  target=lang,
  q='zebra'
).execute()

エラーが不平を言うのと同じ呼び出しを直接行うと、問題なく動作します

https://www.googleapis.com/language/translate/v2?key=MYSECRETKEYWENTHERE&q=zebra&target=fr&alt=json&source=en

再更新

サンプル プロジェクトからすべての OAuth コードを削除して再度実行したところ、秘密鍵にタイプミスがあることに気付きました...ドンク

答えてくれてありがとう!

.

ありがとうございました

4

3 に答える 3

5

OAuthスコープの目的を誤解していると思います。コードをリストしなかったので、いくつかの概念を説明し、それらを状況に適用できることを願っています。


OAuthスコープの説明:

OAuthスコープの目的は、認証されたユーザーに関する情報にアクセスすることです。スコープはアプリケーションごとに異なり、アプリケーションにアクセスを許可するユーザーに関する情報を決定します。

具体的には、スコープパラメータを次のように指定したOAuthリクエスト

https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile

ログイン時に、次のようなプロンプトがユーザーに表示されます。

+ View basic information about your account
    * View your name, public profile URL, and photo
    * View your gender and birthdate
    * View your country, language, and timezone
+ View your email address
    * View the email address associated with your account

だけhttps://www.googleapis.com/auth/userinfo.emailを持っている人は次のようなものを表示しますが:

+ View your email address
    * View the email address associated with your account

翻訳APIの説明:

Translate APIを使用するために、ユーザーをOAuthで認証する必要はありません。APIキーを取得し、そのキーをサービスへのリクエストで提供するだけです。

Translate APIの使用は、OAuthの使用と完全に直交しています。

Translate APIサイトに記載されているように、何かを翻訳するには、リクエストを送信するだけです。

https://www.googleapis.com/language/translate/v2?parameters

適切なパラメータを使用します。

必要なパラメータは、ドキュメントに記載されているように、

  • APIキー。キークエリパラメータを使用して、アプリケーションを識別します。
  • ターゲット言語。ターゲットクエリパラメータを使用して、翻訳する言語を指定します。
  • ソーステキスト文字列。q queryパラメーターを使用して、変換する文字列を識別します。

具体的には、「helloworld」というテキストをドイツ語に翻訳するリクエストは次のようになります。

https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world

パラメータの仕様を見て、何を提供する必要があるかを理解してください。

何をすべきか:

Translate APIを使用してPythonの例のソースを確認するか、使用する言語のAPIライブラリを検索します。

例では、Translate APIサービスに対して認証する必要がないため、OAuthスコープについては言及されていないことがわかります。APIキーと、サービスへのリクエストで翻訳されるテキストを提供するだけで済みます。

スコープを必要とするAPI呼び出しがあるかもしれませんが、Translateはその1つではありません。


必要なユーザーに関する情報がある場合は、その情報にアクセスするために必要なAPIとスコープを検索する必要があります。次に、必要に応じてこの情報をTranslateAPIに提供します。

の場合400

エラー応答が表示された場合は、サービスへの呼び出しが機能しているため、目的の処理が行われていなくても問題ありません。

の場合400、Translate APIの応答により、応答のエラーに関する手がかりが得られます。

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "keyInvalid",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}

上記の応答は、キーが無効であることを示しています。Google APIコンソールから新しいものをリクエストする(または古いものを見つける)ことができます。

概要:

  • OAuthスコープは、ユーザーに関する情報を要求するために使用されます。ユーザーを認証するときにスコープを識別する必要があり、それらのスコープによって提供されるすべての情報にアクセスできます。
  • TranslateAPIにはスコープは必要ありません。リクエストでAPIキー(およびその他の情報)を提供すると、文書化されたとおりに翻訳が返されます
  • 翻訳したいユーザーに関する情報がある場合は、2つのステップで実行する必要があります。まず、適切なスコープでユーザーを認証して情報を収集し、次にその情報をTranslateAPIに提供して情報を収集します。
  • を取得している場合400、応答には、問題のデバッグに使用できる情報が含まれています。
于 2013-03-06T17:17:50.443 に答える
1

Google のドキュメントによると、特定の API のドキュメントを参照する必要があります。

この Google グループの質問に従って更新します。

「Translate API (v1 と v2 の両方) は認証されていない API であるため、OAuth を使用する必要はありません。代わりに、v2 の場合は、ここで取得できる API キーを使用する必要があります: http://code .google.com/apis/console "

于 2013-03-06T16:30:45.177 に答える
0

エラーメッセージについて

エラー: invalid_request 必要なパラメーターがありません: スコープ

フォームにスコープを追加する必要があります

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo#email https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/tasks https://www-opensocial.googleusercontent.com/api/people https://www.googleapis.com/auth/plus.login" />

リンクトイン、フェイスブック、ツイッター、グーグルのプロバイダーで春のソーシャルログインを参照してください。

于 2016-05-25T19:42:25.637 に答える