あまりいい記事がなかったので、書き残しておきます。
結論からいうと、毎度のごとく、+keisuke oohashiさんの助けにより
うまく動作させることができました。(ありがとうございます!)
Two-legged OAuthがGoogle Apps無料版でも利用できるのかどうかを
確認した時の投稿(あまり参考になりません)
https://plus.google.com/u/0/114183076079015753160/posts/j4sHzchyHWs
Two-legged OAuthを検証し始めた時のGoogle+の投稿(参考にするならこちら)
https://plus.google.com/u/0/114183076079015753160/posts/8NCiJghLapC
Two-legged OAuthのポイント
- 認証用のオブジェクトと、各種APIにアクセスするためのオブジェクトを生成する。(以下の例はCalendar API)
OAuthHmacSigner signer = new OAuthHmacSigner(); signer.clientSharedSecret = "<クライアントシークレット>"; OAuthParameters param = new OAuthParameters(); param.version = "1"; param.consumerKey = "<コンシューマキー>"; param.signer = signer; Calendar calendar = new Calendar.Builder(httpTransport, jsonFactory, null) .setHttpRequestInitializer(param) .setCalendarRequestInitializer(new CalendarRequestInitializer("<Simple API AccessにあるAPI KEY>")) .build(); service = new CalendarService(calendar);
コンシューマーキーはGoogle Appsだと、取得したドメイン名のスーパーキーが標準で用意されているのでそれを使うのが簡単ですが、実際に運用する場合は自分で作った方がいいでしょう。作成する場所はGoogle Appsの管理コントロールパネルから高度なツールを選択して「サードパーティのOAuthクライアントアクセスを管理する」から作成して下さい。コンシューマーシークレットも同じページの「管理」リンクをクリックすることで見ることができます。次にSimple API AccessにあるAPI KEYですが、これは、「Google APIs Console」を表示してAPI Accessメニューをクリックすると表示されるKEYを指定します。(Google Appsの管理者アカウントでアクセスした方が無難です)
- 編集する対象のユーザを指定する。
ArrayMap<String, Object> customMap = new ArrayMap<String, Object>(); customMap.add("xoauth_requestor_id", "<対象のアカウント>"); com.google.api.services.calendar.Calendar api = service.getService(); com.google.api.services.calendar.Calendar.Events.List eventList = api.events().list(target_email) .setTimeMin(new DateTime(fmt.format(Calendar.getInstance().getTime()) + "T00:00:00+09:00")) .setFields("items(id,summary)") .setMaxResults(1000); eventList.setUnknownKeys(customMap); Events events = eventList.execute();
Two-legged OAuthは管理用途で利用される機能(?)なので、編集する対象のユーザを指定しないとどのユーザのデータを編集するのかがわからないので対象のユーザを指定して下さい。
以上で、Two-legged OAuthを使った管理作業が可能になると思います。
0 件のコメント:
コメントを投稿