AndroidでGoogleドライブを操作するためのアプリケーションを作成しています。
インターネットでいくつかの例を検索しましたが、それらはすべて同じです。次のエラーが発生します。
Object Drive.Builder does not have method setJsonHttpRequestInitializer.
運が悪かったので、GoogleドライブAPIV1とV2でテストしました。
問題はどこだ?
ソース:
private Drive getDriveService(String accountName) {
HttpTransport ht = AndroidHttp.newCompatibleTransport();
JacksonFactory jf = new JacksonFactory();
Credential credential = new Credential(BearerToken.authorizationHeaderAccessMethod()).setAccessToken(accountName);
Drive.Builder b = new Drive.Builder(ht, jf, null);
b.setJsonHttpRequestInitializer(new JsonHttpRequestInitializer() {
@Override
public void initialize(JsonHttpRequest request) throws IOException {
DriveRequest driveRequest = (DriveRequest) request;
driveRequest.setPrettyPrint(true);
driveRequest.setOauthToken(accountName);
driveRequest.setKey(API_KEY);
}
});
return b.build();
}
google-api-java-client-1.12.0-betaを使用する場合、setJsonHttpRequestInitializerメソッドが未定義であることがわかりました
ダウンロードおよびインポートされたgoogle-api-java-client-1.11.0-beta
しかし、今は次のようになっています。インストールされているアプリケーションにクライアントIDを使用する:クライアントID。
com.google.api.client.http.HttpResponseException: 403 Forbidden
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured"
}
],
"code": 403,
"message": "Access Not Configured"
}
}
シンプルなAPIアクセスの使用:APIキー
Exceptioncom.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
{
"code" : 401,
"errors" : [ {
"domain" : "global",
"location" : "Authorization",
"locationType" : "header",
"message" : "Invalid Credentials",
"reason" : "authError"
} ],
"message" : "Invalid Credentials"
}
プロジェクトのソースは次のとおりです。
http://www.sendspace.com/file/an6xxy
何が問題なのですか、証明書指紋(SHA1)が含まれている可能性がありますか?
googleからcalendar-android-sampleを試してみてください。
GoogleAPIコンソールのアプリの登録に問題があるようです。
サンプルで取得したクライアントIDはどこに配置しますか?
androidでデバッグモードでサンプルを実行した後、「アクセスが構成されていません」を取得します。