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

Net::Google::AuthSub登录失败,使用新的Google驱动器版本

寇照
2023-03-14
my $auth = Net::Google::AuthSub->new;
my $response = $auth->login('LOGIN@gmail.com', 'PASS');
if ($response->is_success) {
     print "Hurrah! Logged in\n";
} else {
     die "Login failed: ".$response->error."\n";
}
Login failed: 
use Net::Google::Spreadsheets;
my $service = Net::Google::Spreadsheets->new(
 username => 'LOGIN@gmail.com',
 password => 'PASS'
);
Net::Google::AuthSub login failed at /usr/local/share/perl/5.18.2/Net/Google/Spreadsheets.pm line 42.

正如某处所建议的那样,我尝试跳过SSL证书检查:

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

但这也于事无补。我怎么做才能让它起作用?谢了。

共有1个答案

栾瑞
2023-03-14
use Net::Google::DataAPI::Auth::OAuth2;
use Net::Google::Spreadsheets;
use Storable; #to save and restore token for future use

my $oauth2 = Net::Google::DataAPI::Auth::OAuth2->new(
    client_id => 'ID.apps.googleusercontent.com',
    client_secret => 'SECRET',
    scope => ['http://spreadsheets.google.com/feeds/'],
  );
#you can skip URL if you have your token saved and continue from RESTORE label

my $url = $oauth2->authorize_url();
#you will need to put code here and receive token
print "OAuth URL, get code: $url\n";
use Term::Prompt;
my $code = prompt('x', 'paste the code: ', '', ''); 
my $token = $oauth2->get_access_token($code) or die;

#save token for future use
my $session = $token->session_freeze;
store($session, 'google_spreadsheet.session');

RESTORE:
my $session = retrieve('google_spreadsheet.session');
my $restored_token = Net::OAuth2::AccessToken->session_thaw($session,
    auto_refresh => 1,
    profile => $oauth2->oauth2_webserver,
);
$oauth2->access_token($restored_token);

my $service = Net::Google::Spreadsheets->new(auth => $oauth2);
# and then as before..
 类似资料:
  • 我的用户在下载我的应用程序后无法使用google sign in登录。起初我认为是sha1的问题,所以我用keytool和我的keystore创建了一个。 我做了什么: 将sha1复制到我的Firebase项目设置 下载了googlejson文件,放在我的项目中。 使用相同的密钥库生成签名的apk。 目前,我想我的Firebase项目设置,调试和发布版本中列出了两个sha1指纹证书。奇怪的是我可以

  • 所以我被这个令人沮丧的问题困住了。我对Firebase上的Google身份验证还很陌生,但我已经做了Firebase文档中关于如何集成Google登录身份验证的所有说明,然而我仍然在控制台中收到这个奇怪的错误,包括两个部分: 而且还 在有人试图指出以前就堆栈溢出提出的类似问题之前,以下是我在看到所有可用的解决方案之后所做的,但non已经解决了该错误 我有我的项目的SHA1指纹 我有我的OAUTH2

  • 我尝试的是下面的,但不是工作 从谷歌REST链接,它显示的例子如下,如何运行这个?

  • 我遵循了这个基本教程,但我得到: 什么应该包含重定向URI?

  • result.issuccess()的结果是:false。 完成的功能是: 失败时的结果是: > RE生成SHA1指纹图谱。-Firebase给我的信息是我的sh1指纹是256指纹。我还生成了释放密钥和调试密钥。 我将新文件google-services.json放入Android Studio的应用程序目录中。 我试图在物理手机上运行该应用程序,但错误与在虚拟手机上运行相同。 将包名比较到文件A

  • 1. 申请应用 1.1 创建第三方授权应用 登录 Google 开发者中心:Google 开发者中心 (opens new window) 点击新建项目:新建项目 (opens new window) 确保在第二步新建的项目下,选择“API 和服务”-“凭据” 创建凭据 创建凭据时,选择 “OAuth 客户端 ID” 首次创建凭据时系统会提示“如需创建 OAuth 客户端 ID,您必须先在同意屏幕