Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android授权谷歌硬盘api_Android_Google Drive Android Api - Fatal编程技术网

Android授权谷歌硬盘api

Android授权谷歌硬盘api,android,google-drive-android-api,Android,Google Drive Android Api,我希望能够上传和下载从用户谷歌驱动器帐户 上传和下载工作正常,问题是授权帐户 到目前为止,我使用android调试密钥库来构建实际的下载和上传类,但当我想切换到自己的应用程序时,它停止了工作 我已经在Google驱动器控制台中启用了驱动器API,并下载了client_secret.json文件并将其放入资产文件夹。我不知道如何在授权中使用它 因此,基本上如何授权帐户在android中使用Google drive API。请注意,我的DriveScope是DRIVE,这意味着完全控制给定的Goog

我希望能够上传和下载从用户谷歌驱动器帐户

上传和下载工作正常,问题是授权帐户

到目前为止,我使用android调试密钥库来构建实际的下载和上传类,但当我想切换到自己的应用程序时,它停止了工作

我已经在Google驱动器控制台中启用了驱动器API,并下载了client_secret.json文件并将其放入资产文件夹。我不知道如何在授权中使用它

因此,基本上如何授权帐户在android中使用Google drive API。请注意,我的DriveScope是DRIVE,这意味着完全控制给定的Google DRIVE帐户

这是我用来访问谷歌硬盘文件的代码。我遵循了有关此链接的教程:


很可能只是您的授权项目不匹配。对于Android应用程序,授权由2个组成,必须在您的应用程序中按顺序排列(天哪,他们再次洗牌!!!)。您不需要“client\u secret.json”

  • API&auth->Credentials->Credentials->Android客户端1“SHA1”必须与您的“包装名称”同步
  • API&auth->Credentials->OAuth同意屏幕必须有您的“产品名称”和“电子邮件地址”
  • 我猜,通过切换到应用程序的“发布”版本,您正在生成的“包名”/“SHA1”与开发人员控制台不同步(您的IDE指向不同的密钥库,因此提取了不正确的SHA1)

    这是我遇到麻烦时使用的“最后一搏”支票

  • 找到不工作的APK。在解压(7-zip)中打开“*.apk”文件,并在存档中找到“META-INF\CERT.RSA”文件。例如,将其解压缩到桌面
  • 运行“keytool-printcert-file.\desktop\CERT.RSA”
  • 您应该看到APK文件的“SHA1”。将其与开发人员控制台中的“SHA1”进行比较。同时检查包名(它在您的清单中)。“包名”/“SHA1”对是授权Google Drive中应用程序版本的内容

  • 祝你好运

    很可能只是你的授权项目不匹配。对于Android应用程序,授权由2个组成,必须在您的应用程序中按顺序排列(天哪,他们再次洗牌!!!)。您不需要“client\u secret.json”

  • API&auth->Credentials->Credentials->Android客户端1“SHA1”必须与您的“包装名称”同步
  • API&auth->Credentials->OAuth同意屏幕必须有您的“产品名称”和“电子邮件地址”
  • 我猜,通过切换到应用程序的“发布”版本,您正在生成的“包名”/“SHA1”与开发人员控制台不同步(您的IDE指向不同的密钥库,因此提取了不正确的SHA1)

    这是我遇到麻烦时使用的“最后一搏”支票

  • 找到不工作的APK。在解压(7-zip)中打开“*.apk”文件,并在存档中找到“META-INF\CERT.RSA”文件。例如,将其解压缩到桌面
  • 运行“keytool-printcert-file.\desktop\CERT.RSA”
  • 您应该看到APK文件的“SHA1”。将其与开发人员控制台中的“SHA1”进行比较。同时检查包名(它在您的清单中)。“包名”/“SHA1”对是授权Google Drive中应用程序版本的内容

  • 祝你好运

    谢谢,你是对的,这是SHA1键不匹配,只是因为我用手机运行应用程序。在android studio上按“运行”按钮时,默认情况下运行由debug.keystore签名的appdebug.apk。当我用自己的密钥库生成一个签名的APK并在手机上试用时,它就像一个符咒。谢谢,你是对的,这是SHA1密钥不匹配,只是因为我用手机运行应用程序。在android studio上按“运行”按钮时,默认情况下运行由debug.keystore签名的appdebug.apk。当我用自己的密钥库生成一个签名的APK并在手机上试用时,它就像一个符咒。
    googleAccountCredential = GoogleAccountCredential.usingOAuth2(
                getActivity().getApplicationContext(), Arrays.asList(SCOPES))
                .setBackOff(new ExponentialBackOff())
                .setSelectedAccountName(getArguments().getString("account"));
    
        driveService = new Drive.Builder(
                transport, jsonFactory, googleAccountCredential)
                .setApplicationName("myAPP")
                .build();