1

Google クライアント ライブラリを使用せずに Google タスクに接続しようとしています。次のコードは、403 禁止エラーを返します。何が欠けているのかわからない。任意のガイダンスをいただければ幸いです。

try {
                Bundle options = new Bundle();
                AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
                Account[] list = manager.getAccountsByType("com.google");
                Account acct = list[0];
                manager.invalidateAuthToken("com.google", null);
                AccountManagerFuture<Bundle> acc = manager.getAuthToken(
                        acct,
                        "oauth2:https://www.googleapis.com/auth/tasks",
                        options, true, null, null);

                Bundle bundle = acc.getResult();
                String token = bundle
                        .getString(AccountManager.KEY_AUTHTOKEN);
                Log.i("Token: ", token); // token does have value

                String url = "https://www.googleapis.com/tasks/v1/users/@me/lists?key=long_winded_api_key_from_console_here";
                HttpGet getRequest = new HttpGet(url);
                getRequest.addHeader("client_id",
                        "clientID_from_console_here.apps.googleusercontent.com");
                getRequest.addHeader("Authorization", "OAuth " + token);

                HttpClient httpclient = new DefaultHttpClient();

                String responseBody = httpclient.execute(getRequest,
                        new BasicResponseHandler()); // exception raised here

                httpclient.execute(getRequest, new BasicResponseHandler());

                Log.i("###", responseBody); // cannot get the response here

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } // exception raised here
            catch (OperationCanceledException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (AuthenticatorException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
4

2 に答える 2