2016-07-30 21 views
0

カレンダーのすべてのイベントを取得するための簡単なアプリケーションを開発しています。アプリケーションは1つのテキストボックス(アカウントを埋める)、1 datagridview(すべてのイベントデータを埋める)と1ボタン(実行する)があります。さまざまなアカウント(VB.Net)のGoogleカレンダーAPIでエラー404が発生する

Google APIコンソールで使用していたGoogleアカウントをテキストボックスに書き込むと問題なく動作しますが、他のアカウントで(ブラウザにログインしている場合でも)試してみると、404エラーが表示されます。

複数のアカウントでどのように達成できますか?

これはすべて私のイベントを取得するために私のコードです:

Imports Google.Apis.Auth.OAuth2 
Imports Google.Apis.Services 
Imports Google.Apis.Calendar.v3 
Imports Google.Apis.Calendar.v3.Data 
Imports Google.Apis.Calendar.v3.EventsResource 
Imports System.Threading 
Public Class Form1 
Dim scopes As IList(Of String) = New List(Of String) 
Dim service As CalendarService 
Dim initializer = New BaseClientService.Initializer 
Dim Secrets = New ClientSecrets() 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     scopes.Add(CalendarService.Scope.Calendar) 
     Secrets.ClientId = "CLIENT ID" 
     Secrets.ClientSecret = "CLIENT SECRET" 
     Dim credential = GoogleWebAuthorizationBroker.AuthorizeAsync(Secrets, scopes, "DEVELOPER EMAIL", CancellationToken.None).Result() 
     Dim initializer = New BaseClientService.Initializer 
     initializer.HttpClientInitializer = credential 
     initializer.ApplicationName = "APPLICATION NAME" 
     service = New CalendarService(initializer) 
     Dim list As IList(Of CalendarListEntry) = service.CalendarList.List().Execute().Items 
     Dim requeust As ListRequest = service.Events.List(TextBox1.Text) 
     Me.DataGridView1.DataSource = requeust.Execute.Items 
End Sub 
End Class 

私は何ができますか?

ありがとうございました。

答えて

0

Google APIのすべてでわかっているように、あなたのアカウントは新しいトークンが作成されていますが、最初にAPIトークンを作成する必要がありますが、他のものではないため、他のアカウントのAPIは、GoogleマップAPIと同じです。

すべてのユーザーのゲストアカウントAPIを作成する方法を確認してください。
わからないことは、あなたの質問のために助けることができるが、それはあなたが望むものと近いものであった:
How do I connect to the Google Calendar API without the oAuth authentication?

敬具、
KT

0

404: Not Foundは、指定されたリソースが見つからなかったことを意味します。これは、いくつかのケースで発生する可能性があります。いくつかの例を示します:

  • 要求されたリソースが存在しなかった場合。
  • ユーザーがアクセスできないカレンダーにアクセスすると、

exponential backoff公式のGoogleドキュメント推奨指数バックオフは、クライアントが定期的に失敗した要求を一定期間再試行するネットワークアプリケーションの標準エラー処理戦略です。大量の要求または大量のネットワークトラフィックによりサーバーがエラーを返す場合、指数バックオフはこれらのエラーを処理するための良い戦略です。逆に、レート制限、ネットワークボリュームまたは応答時間とは無関係のエラー(無効な認証資格情報やファイルが見つからないエラーなど)を処理するには、関連する戦略ではありません。

指数バックオフを使用すると、帯域幅の使用効率が向上し、正常な応答を得るために必要な要求数が減少し、並行環境での要求のスループットが最大限に向上します。

複数のアカウントへのアクセスに関しては、アクセスするアカウントを決定するのはOauthトークンです。クライアントの秘密または使用しているプロジェクトではありません。コンソールで同じプロジェクトを使用して、両方のアカウントからデータを取得することができます。ただし、それぞれに個別のOAuthトークンを要求してから、データにアクセスするために使用する必要があります。 OAuth 2.0のドキュメントを確認してください:https://developers.google.com/identity/protocols/OAuth2

関連する問題