1

Apache HttpClientを使用してGoogleカレンダーAPIなどの認証を必要とするGoogle APIを呼び出すことが可能かどうか、またGoogleコードやライブラリは知りません。Apache HttpClientを使用してGoogle auth APIを呼び出す

これは私がこれまでに持っているコードで、認証エラーを受け取ります。 ユーザー/パスワードには何を使用していますか?

HttpPost request = new HttpPost("https://www.googleapis.com/calendar/v3/users/me/calendarList/primary?key=mykey"); 
DefaultHttpClient client = new DefaultHttpClient(); 
client.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY), 
new UsernamePasswordCredentials(user, password)); 
HttpResponse response = client.execute(request); 

エラー:

"errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
+0

これは非ユーザインタラクティブなプロセスであり、1時間ごとにカレンダーをチェックし、有効期限が切れている資格情報を持たないようにする必要があります。 – James

答えて

1

あなたは、あなたが、あなたはこのような何かを呼び出すことができ、アクセストークンを持つことになります一度あなたが認証される必要がログインとパスワードを使用しないでください。

https://www.googleapis.com/calendar/v3/users/me/calendarList/primary?access_token= {} tokenFromAuth

あなたは、HTTP POSTおよびHTTPのGETすることができる任意の言語でGoogleに認証を行うことができます。 Googleへの認証フローの私の散歩がここにありますhttp://www.daimto.com/google-3-legged-oauth2-flow/ Google開発者コンソールでOauth2認証情報を作成して起動する必要があります。次に、ユーザーにデータへのアクセス権とアクセス権の要求を求めるだけです。

+0

ユーザーがいない、ボットですか?ユーザーはユーザーのインタラクティブなプロセスではなく、ボットの設定にクレデンシャルを入力する必要があります – James

+0

クライアントのログインはGoogleによってサポートされなくなりました。あなたのユーザは少なくとも1回は認証が必要で、ボットは自動的に実行されます。しかし、一部のAPIサポートサービスアカウントでは、jwtトークンを作成する作業が非常に難しく、ユーザーはGoogle Developerコンソールで独自のプロジェクトを作成し、アクセスするデータを事前に承認する必要があります。 – DaImTo

+0

ユーザー認証では、最後の1時間だけのトークンですか? – James

関連する問題