当前位置: 首页 > 知识库问答 >
问题:

Google Drive Api的帐户授权

柳墨一
2023-03-14

我正在开发一个android应用程序,它有可能提供大量的统计信息。我想把这些数据保存在我的谷歌硬盘上,以便以后分析。

然而,我对谷歌API是新手,几乎不知道如何通过编程方式授权我的帐户。这是我到目前为止的情况。

private static Uri driveUri;
private static Drive service;
private GoogleAccountCredential credential;
private Account driveAccount;

//      AccountManager accManager = 
//              (AccountManager) getSystemService(Context.ACCOUNT_SERVICE);
//      accManager.setUserData(driveAccount, ???, ???)



    credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
    credential.setSelectedAccountName("myaccount@gmail.com");

    service = getDriveService(credential);

public class UploadToDrive extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... arg0) {
        // TODO Auto-generated method stub
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
        File sdcard = new File(Environment.getExternalStorageDirectory().getPath());
        File fileAnalytics = null;
        try {
            fileAnalytics = File.createTempFile("Sessions" + File.separator + "session_" + timeStamp, ".txt", sdcard);
        } catch (IOException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }

        PrintStream ps = null;
        try {
            ps = new PrintStream(fileAnalytics);
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ps.println("Count: " + count);
        ps.println("Time: " + (System.currentTimeMillis() - startTime));
        ps.close();
        FileContent content = new FileContent("text/plain", fileAnalytics);

        com.google.api.services.drive.model.File body = new com.google.api.services.drive.model.File();
        body.setTitle(fileAnalytics.getName());
        body.setMimeType("text/plain");


        try {
            service.files().insert(body, content);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        // TODO Auto-generated method stub
        super.onProgressUpdate(values);
    }


}

代码运行成功,文件已在设备上创建,但我想将其发送到我的google驱动器。

我认为主要问题是我不知道帐户名称凭据应该是什么。我有一种感觉,它不是“myacc@gmail.com”。有什么方法可以获取我自己的谷歌帐户的帐户名称字符串吗?

共有1个答案

百里丁雨
2023-03-14

问题似乎是Google Drive、Dropbox和其他云服务没有内置对访问您自己帐户的支持。

即使我拿到了我的帐户密钥,它也会每15分钟改变一次!

我建议建立一个网站,使用FTP上传文件。

 类似资料:
  • > 不是在某人试图登录时自动创建帐户,而是要求已经存在一个具有完全相同电子邮件/用户名的帐户,并在特定用户试图登录时根据电子邮件链接它们。 自动创建一个帐户第一次用户登录使用谷歌,链接他们,但需要管理员手动激活帐户之前,它可以使用 前2的组合。启用注册,允许用户注册一个帐户,并要求管理员激活帐户,在这一点上,用户可以链接他们。

  • 文档建议将服务帐户添加到GApps的第三方oauth访问列表必须由域管理员手动完成:https://developers.google.com/drive/delegation#delegate_domain-wide_authority_to_your_service_account 有没有一种方法可以通过身份验证页面来实现这一点?

  • 之后,我得到以下错误: 我们使用的是restapi.php (a)我们使用的是G套件“基本版”;那有什么限制吗?(b)我们从PHP(7.0)环境中调用G-Suite API;是否有任何已知的问题,因为环境仍然标记为'(Beta)'。(c)是否有任何样例/教程可以给出解决我们问题的指针。

  • 目前,在Windows XP上使用甲骨文DB 11g。以授予 DBA 角色的斯科特用户(非系统)身份登录。根据 Oracle 文档“DBA = 具有管理员选项的所有系统权限”。然后,为什么创建新用户会给出错误“ORA-01031权限不足...”?下面是使用 SQL 开发人员执行的 DDL 命令:

  • 我正在尝试在twitter上创建一个应用程序。当我登录时,它会给我以下错误- 错误-是否授权“”使用您的帐户? 我得到以下错误在访问请求令牌(https://api.twitter.com/oauth/request_token)- 错误-无法验证oauth签名和令牌。 我正在做的是重定向用户到: https://twitter.com/oauth/authenticate?oauth_token

  • 我可以用一个Google Drive API授权多个Google帐户吗?因为当我请求这个URI时 https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/drive.metadata.readonly 其中| | redirecturi | | |和| | clientid | | |替换