相关疑难解决方法(0)

Android Google+无法获取授权码

我正在尝试根据这篇文章获取Google+身份验证代码:您的应用的服务器端访问权限.但是,每当我运行我的应用程序并尝试获取代码时,我在LogCat中获得以下内容:

07-23 23:42:31.760: E/getAccessToken()(11114): [ERROR] GoogleAuthException: com.google.android.gms.auth.GoogleAuthException: Unknown
Run Code Online (Sandbox Code Playgroud)

我浏览了很多东西,据我所知,我已经在下面的代码中正确设置了所有内容.任何想法为什么它没有获得身份验证令牌?

仅供参考,我有在既有的应用程序和Web应用程序配置的OAuth和我使用的服务器(而不是应用程序)的ID为范围字符串API控制台一个项目设置.我也跟着上面的链接中的示例,应用程序工作正常,允许您登录/退出,但我无法获得身份验证代码.

private String getAccessToken() {
    String scopesString = Scopes.PLUS_LOGIN + " " + Scopes.PLUS_PROFILE;
    String scope = "oauth2:server:client_id:" + SERVER_CLIENT_ID + ":api_scope:" + scopesString;
    Bundle appActivities = new Bundle();
    appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES,
            "http://schemas.google.com/AddActivity");
    String code = null;
    try {
         code = GoogleAuthUtil.getToken(
                    this,                             // Context context
                    mPlusClient.getAccountName(),     // String accountName
                    scopes,                           // String scope
                    appActivities                     // Bundle bundle
                );
    } catch (IOException transientEx) {
      // network or server error, the call …
Run Code Online (Sandbox Code Playgroud)

android oauth-2.0 google-plus

7
推荐指数
1
解决办法
3485
查看次数

身份验证后带有 gmail-api 的 UserRecoverableAuthIOException

我正在使用Gmail api,许多用户抱怨发送电子邮件不起作用。对于大多数用户来说,它工作正常,我无法重现该问题。在 Firebase 中,我收到以下崩溃报告。

Non-fatal Exception: com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException
        at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:297)
        at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:868)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
        at com.dummydomain.myapp.EmailUtils.sendMessage(EmailUtils.java:397)
        (...)

        
Caused by com.google.android.gms.auth.d: NeedPermission
        at com.google.android.gms.auth.zze.zzb(zze.java:13)
        at com.google.android.gms.auth.zzd.zza(zzd.java:77)
        at com.google.android.gms.auth.zzd.zzb(zzd.java:20)
        at com.google.android.gms.auth.zzd.getToken(zzd.java:7)
        at com.google.android.gms.auth.zzd.getToken(zzd.java:5)
        at com.google.android.gms.auth.zzd.getToken(zzd.java:2)
        at com.google.android.gms.auth.GoogleAuthUtil.getToken(GoogleAuthUtil.java:55)
        at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:267)
        at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:292)
        at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:868)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
        at com.dummydomain.myapp.EmailUtils.sendMessage(EmailUtils.java:397)
        (...)

Run Code Online (Sandbox Code Playgroud)

以下是我的身份验证过程的要点。此时已授予 Manifest.permission.GET_ACCOUNTS,并且 Google Cloud Console 中的相应 API 内容已正确配置,并且我的应用已通过使用敏感权限/范围 GMAIL_SEND 的验证。

private void authenticate() {
    
    String[] SCOPES = {GmailScopes.GMAIL_SEND};
    GoogleAccountCredential mCredential = GoogleAccountCredential.usingOAuth2(
            context,
            Arrays.asList(SCOPES)) …
Run Code Online (Sandbox Code Playgroud)

java android gmail-api

6
推荐指数
0
解决办法
275
查看次数

通过Android应用安全地将Google Plus登录到Web应用程序中

我正在开发Android应用,我希望用户使用Google+登录登录我的应用.

目前,我在PHP登录脚本中传递了我从Google+获得的用户名.该脚本使用用户的ID加载新会话.

目前,该网站非常不安全:知道其他用户的用户名的任何人都可能以其身份登录.

有什么安全的方法可以做到这一点?

如何针对我的服务器授权用户?

对我来说,Google +纯粹是一个社交网络API ......

android google-plus

4
推荐指数
1
解决办法
2132
查看次数

即使在获得许可后也始终获得NEED_PERMISSION异常

我正在使用Google云端硬盘跨客户端身份,以便当用户向我的Android应用授予驱动器访问权限时,我的网络服务器也可以访问用户Google云端硬盘.

首先,我必须获得授权码.为此,我使用以下代码:

private String getAccessToken(Context mContext) {
      String SERVER_CLIENT_ID = "1009999994.apps.googleusrcontent.com";
      String scopes = "oauth2:server:client_id:"+SERVER_CLIENT_ID+":api_scope:"+DriveScopes.DRIVE;
      String accessToken = null;

      try {
        accessToken = GoogleAuthUtil.getToken(mContext, accountName, scopes); 
        Log.d("token is:", "token:"+accessToken);
    } catch (UserRecoverableAuthException e) {

        e.printStackTrace();
    } catch (IOException e) {

        e.printStackTrace();
    } catch (GoogleAuthException e) {

        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

      return accessToken;
  }
Run Code Online (Sandbox Code Playgroud)

这是我在Logcat中遇到的异常:

   07-20 12:12:10.210: W/GLSActivity(29164): [qq] Status from wire: INVALID_SCOPE status: INVALID_SCOPE
    07-20 12:12:12.453: W/System.err(29037): com.google.android.gms.auth.GoogleAuthException: INVALID_SCOPE
    07-20 12:12:12.492: W/System.err(29037):    at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
    07-20 …
Run Code Online (Sandbox Code Playgroud)

android google-drive-api google-oauth

1
推荐指数
1
解决办法
8337
查看次数