2

Fusion テーブルからデータを取得しようとしています。に書かれているように、私は書きます

import "package:google_fusiontables_v1_api/fusiontables_v1_api_browser.dart";
import "package:google_oauth2_client/google_oauth2_browser.dart";

class CFusionTable
{
  static const _tableName = '*mytablename*';
  static const _clientID = "*myclientid*";

  GoogleOAuth2 _gauth;

  CFusionTable()
  {
    _gauth = new GoogleOAuth2(_clientID, [Fusiontables.FUSIONTABLES_SCOPE]);
     var fusiontables = new Fusiontables(_gauth);
    fusiontables.query.sql('select ID, Name, Latitude, Longitude, Country, Territory, City, Photo, ROWID from '+_tableName,
        hdrs: false)
      .then(_loadData);

  }

  void _loadData(data)
  {
    print (data.toString());
  }
}

ただし、認証は機能しません。

リソースの読み込みに失敗しました: サーバーは 403 (Forbidden)
As">https://www.googleapis.com/fusiontables/v1/query?hdrs=false&sql=select%20ID%2C%20Name%2C%20Latitudeのステータスで応答しました%2C%20Longitude%2C%20Country%2C%20Territory%2C%20City%2C%20Photo%2C%20ROWID%20from%201bSQ16GyMgRuleMBdn1aF4Xfu0E3HRv_As Uncaught Error: APIRequestException: 403 Daily Limit for Unauthenticated Use Exceeded. 継続して使用するにはサインアップが必要です. Exception: APIRequestException: 403 認証されていない使用の1日の制限を超えました. 継続して使用するにはサインアップが必要です. undefined (undefined:0:0)

教えてください、私は何が間違っていますか?

4

2 に答える 2

1

403 が表示されたときに確認するもう 1 つのことは、クライアント ID です。Google API の多くにはレート制限があり、未登録のアプリの場合、レート制限は基本的にゼロです。したがって、403 が表示される場合は、(a) アプリを登録していないか、(b) アプリを登録したが、コードに間違ったクライアント ID 値を入力したか、(c) これらすべてを行ったがアプリを登録したことが原因であることがよくあります。間違ったスコープの場合...パターンが表示されます。

于 2013-10-22T00:53:37.450 に答える