2011-04-27 3 views
1

私たちのドメイン(教育)用のGoogleアプリケーションがあります。私たちの学生データベースシステムには、すべてのクラス情報があります。ドメインのすべてのカレンダーを外部データベースと同期させるためのGoogleカレンダースクリプト

すべての教員と学生のカレンダーをGoogleカレンダーと同期させる同期プロセスを作成します。これはすべてシンプルなようです...すべての "what ifs"を除いて、それはちょうど把握するのに時間がかかります。

私は現在、Googleでの認証方法を決定しようとすると壁に当たります。 1人のユーザーが1日に行うことができる会話の量には限界があるので、本当に全員の同期を担当する管理者ユーザーアカウントを1つ持つことはできません。

これでどの認証方法を使用するべきか教えていただけますか?私はユーザーがログインする必要はありません、私はちょうどすべてのカレンダーに書き込む必要があります。私は2足のOAuthの言葉を聞いたことがありますが、私は正しい答えが何であるか混乱しており、実際に何を使うべきかについてのガイダンスが本当に必要です。

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

答えて

0

以下は、同様のプロジェクトで使用したコードの一部です。私は、OAuthを使うよりもはるかに簡単なgoogle apiと.netフレームワークを使用しました。これらのスニペットは、要するに

Imports Google.GData 
Imports Google.GData.Client 
Imports Google.GData.Calendar 

.....Various Property Fields for the class go here..... 

Public Sub AddEvent() 
    Try 
     Dim theEvent As New EventEntry 
     Dim theCalendarService As CalendarService = New CalendarService(FProgID) 
     Dim theTime As New Extensions.When(FEventStartTime, FEventEndTime) 
     Dim theEntry As AtomEntry 


     If FAllDay = True Then 
      theTime.AllDay = True 
     Else 
      theTime.AllDay = False 
     End If 

     theEvent.Title.Text = FEventTitle 
     theEvent.Times.Add(theTime) 

     If Not FDescription = "" Then 
      theEvent.Content.Content = FDescription 
     End If 
     If Not FEventLocation = "" Then 
      Dim theLocation As New Extensions.Where 
      theLocation.ValueString = FEventLocation 
      theEvent.Locations.Add(theLocation) 
     End If 
     If Not FAuthor = "" Then 
      Dim theAuthor As New AtomPerson 
      theAuthor.Name = FAuthor 
      theEvent.Authors.Add(theAuthor) 
     End If 

     theCalendarService.setUserCredentials(FstrEmail, FstrPassword) 
     theEntry = theCalendarService.Insert(FURLNoCookie, theEvent) 
     FStatus = "Event added successfully to Google Calendar" 
    Catch ex As Exception 
     FStatus = "Failed: Event was added to Job List, but not Google Calendar" 
    End Try 
End Sub 

Visual Basicで私は.NET FrameworkのためにGoogleが提供するカレンダサービスクラスを使用していたされています。 FstrEmailはカレンダーに関連付けられた電子メールアドレスだけで、FstrPasswordは通常のGoogleパスワードです。 FURLNoCookieは、実際にカレンダーがどこに行くかを指定する場所です。これはカレンダーのXMLプライベート共有URLです(カレンダーの設定>プライベートアドレスから取得)。あなたが最初のカレンダーからこのURLを取得すると、それは更新とエントリを削除するために使用することができ、この

http://www.google.com/calendar/feeds/somebody%40gmail.com/private/full 

同様のプロセスのように見えるためにそれを修正し、この

http://www.google.com/calendar/feeds/somebody%40gmail.com/private-188ba1932aa23d4a64ag712db232bfe8b/basic 

ようになります。私は複数のGoogleカレンダーとスプレッドシートを同期するためにこれを使用し、それは正常に動作します。

+0

ええ、それについても考えていましたが、1日でリクエストが多すぎるため、潜在的な閉塞に陥ることになります。 1日に10〜15kのさまざまなイベントを簡単に同期できます。あなたはこれに悩まされましたか? – wilbbe01

+0

私はこれに何ら問題はなかった。しかし、私はその負荷の高さの下で決して負荷試験を受けたことはありません。私がやっていることは一日に100回ほどです。 – ThinkerIV

関連する問題