尝试运行tasks-android-sample时未配置访问权限

时间:2014-02-11 20:46:11

标签: android google-api-java-client google-tasks

我正在尝试运行我在这里找到的task-android-sample代码: http://samples.google-api-java-client.googlecode.com/hg/tasks-android-sample/instructions.html

我成功将其导入Eclipse并使用Google Eclipse插件添加了所有必需的依赖项: https://developers.google.com/eclipse/docs/googleapis

我将项目包的包名更改为自定义值,该值由指令建议。

我在Google Developer Console中创建了一个新项目,确保Tasks API处于开启状态,并在凭据标签中添加了一个新密钥。在密钥里面,我插入了我的SHA1证书指纹(我从Eclipse中获取:Window / Preferences / Android / Build),以及我新更改的包名。

当我从Eclipse运行示例应用程序时,我看到两个对话框要求我授予它访问任务的权限,然后是以下消息:

  

[错误]未配置访问权限。请使用Google Developers Console   激活项目的API。

我的LogCat显示以下内容:

02-11 20:33:32.593: E/TasksSample(9231): Error
02-11 20:33:32.593: E/TasksSample(9231): com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
02-11 20:33:32.593: E/TasksSample(9231): {
02-11 20:33:32.593: E/TasksSample(9231):   "code": 403,
02-11 20:33:32.593: E/TasksSample(9231):   "errors": [
02-11 20:33:32.593: E/TasksSample(9231):     {
02-11 20:33:32.593: E/TasksSample(9231):       "domain": "usageLimits",
02-11 20:33:32.593: E/TasksSample(9231):       "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project.",
02-11 20:33:32.593: E/TasksSample(9231):       "reason": "accessNotConfigured"
02-11 20:33:32.593: E/TasksSample(9231):     }
02-11 20:33:32.593: E/TasksSample(9231):   ],
02-11 20:33:32.593: E/TasksSample(9231):   "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
02-11 20:33:32.593: E/TasksSample(9231): }
02-11 20:33:32.593: E/TasksSample(9231):    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
02-11 20:33:32.593: E/TasksSample(9231):    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
02-11 20:33:32.593: E/TasksSample(9231):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
02-11 20:33:32.593: E/TasksSample(9231):    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1045)
02-11 20:33:32.593: E/TasksSample(9231):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
02-11 20:33:32.593: E/TasksSample(9231):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
02-11 20:33:32.593: E/TasksSample(9231):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
02-11 20:33:32.593: E/TasksSample(9231):    at pl.bartoszwesolowski.taskssample.AsyncLoadTasks.doInBackground(AsyncLoadTasks.java:38)
02-11 20:33:32.593: E/TasksSample(9231):    at pl.bartoszwesolowski.taskssample.CommonAsyncTask.doInBackground(CommonAsyncTask.java:53)
02-11 20:33:32.593: E/TasksSample(9231):    at pl.bartoszwesolowski.taskssample.CommonAsyncTask.doInBackground(CommonAsyncTask.java:1)
02-11 20:33:32.593: E/TasksSample(9231):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
02-11 20:33:32.593: E/TasksSample(9231):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-11 20:33:32.593: E/TasksSample(9231):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
02-11 20:33:32.593: E/TasksSample(9231):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
02-11 20:33:32.593: E/TasksSample(9231):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
02-11 20:33:32.593: E/TasksSample(9231):    at java.lang.Thread.run(Thread.java:841)

是否有人能够成功运行示例代码?我该怎么做才能摆脱错误?

2 个答案:

答案 0 :(得分:0)

我昨天遇到了同样的问题,尝试了几个小时不同的东西,直到我在API控制台上执行此操作之前没有任何工作(显然有一个或这些东西的组合使其工作):

1-在 API 标签上(在 Apis&amp; auth 内)我禁用了所有API,任务API 除外。< / p>

2-在凭据标签上(在 Apis&amp; auth 内)我删除了客户端ID API密钥< / strong>我之前创建的,然后我创建了一个新的OAuth 客户端ID (我没有创建新的 API密钥,因为显然不需要使用OAuth时的任务API。

所以做完这些事后我的应用程序开始工作了#34;神奇地&#34; (这是另一种说法,我不知道为什么:P)。

当从Android Studio(或者你的情况下是Eclipse)运行应用程序时,该应用程序没有工作,但是当我编译已签名的apk并将其安装在手机上时(这是因为新的Tasks API的方式)检测您的应用是否可以通过SHA1证书进行通信,该证书仅在您使用密钥库对其进行签名时才会添加到应用中。

无论如何,我希望这可以帮助你和其他人解决同样的问题。

干杯。

答案 1 :(得分:0)

我遇到了同样的问题。我使用Iceweasel控制了谷歌开发者控制台,并进行了debian拉伸(测试)。然后我用firefox切换到Win 10并创建了一个新项目。它突然起作用了。我认为Google Developer Console无法正常使用Iceweasel。