我正在尝试使用
Android应用访问Gmail API.
我已经使用所有可用的范围组合成功地请求并接收了访问令牌.
但似乎每次我实际尝试使用Gmail API命令时,我都会看到一个403异常:Access未配置,请使用Google开发者控制台激活api …
我已经使用所有可用的范围组合成功地请求并接收了访问令牌.
但似乎每次我实际尝试使用Gmail API命令时,我都会看到一个403异常:Access未配置,请使用Google开发者控制台激活api …
不用说API被激活,并且使用正确的包名称& sha1代码.相同的客户端ID适用于Google Plus功能.
有任何人遇到此问题或成功连接到Android的Gmail api?
谢谢
这是日志:
09-04 21:40:54.014: W/System.err(26717): com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden 09-04 21:40:54.014: W/System.err(26717): { 09-04 21:40:54.014: W/System.err(26717): "code" : 403,09-04 21:40:54.014: W/System.err(26717): "errors" : [ { 09-04 21:40:54.014: W/System.err(26717): "domain" : "usageLimits",09-04 21:40:54.014: W/System.err(26717): "message" : "Access Not Configured. Please use Google Developers Console to activate the API for your project.",09-04 21:40:54.014: W/System.err(26717): "reason" : "accessNotConfigured" 09-04 21:40:54.014: W/System.err(26717): } ],09-04 21:40:54.014: W/System.err(26717): "message" : "Access Not Configured. Please use Google Developers Console to activate the API for your project." 09-04 21:40:54.014: W/System.err(26717): }
除了API API和Gmail API,是否还需要在API控制台中启用任何其他API?
编辑:
我发现使用基于WebView的身份验证将导致一个访问令牌,这将允许Gmail API访问,但这不是一个有效的解决方案,因为令牌是短暂的.至于现在,GoogleAuthUtil将会授予一个令牌,但它的权限不足以使用Gmail API.
任何人都能够将Android与Gmail API连接起来,并希望分享?
EDIT2:
这是我在做什么的片段
获取令牌:
token = GoogleAuthUtil.getToken(MainActivity.this,Plus.AccountApi.getAccountName(mGoogleApiClient),scope);
GoogleCredential credential = new GoogleCredential().setAccessToken(token); JsonFactory jsonFactory = new JacksonFactory(); HttpTransport httpTransport = new NetHttpTransport(); service = new Gmail.Builder(httpTransport,jsonFactory,credential).setApplicationName("GmailApiTP").build(); ListMessagesResponse messagesRespose; List<Message> m = null; ArrayList<String> ids = new ArrayList<String>(); ids.add("INBox"); try { messagesRespose = service.users().messages().list("me").setLabelIds(ids).setQ("From: something") .execute(); m = messagesRespose.getMessages(); } catch (IOException e) { e.printStackTrace(); }
使用Gmail API服务时就会被捕获.此外,我已经尝试清除令牌,并要求一个新的令牌相同的结果.
解决方法
该错误消息是欺骗性的,我相信当开发人员项目凭据客户端不正确时也会发生.例如,当您想要“安装的应用程序”时,您选择了“Web应用程序”.
确认您正确遵循以下指示:
https://developers.google.com/accounts/docs/OAuth2
(应为“安装应用”等)
你可以从开发者控制台发布oauth客户端信息吗? (类型和其他非机密信息等)