如果你已經設法創建了access_token,那麼你應該可以通過使用它來創建一個新的Net::OAuth2::AccessToken對象,然後或多或少地進行處理,使其能夠以Net :: Google :: Spreadsheets的正確格式獲得在example you linked to in the other thread:
use Net::Google::Spreadsheets;
use Net::Google::DataAPI::Auth::OAuth2;
use Net::OAuth2::AccessToken;
my $oauth2 = Net::Google::DataAPI::Auth::OAuth2->new(
client_id => 'my_client_id.apps.googleusercontent.com',
client_secret => 'my secret',
scope => ['http://spreadsheets.google.com/feeds/'],
);
my $access_token = 'token you generate somehow';
my $token = Net::OAuth2::AccessToken->new(access_token => $access_token,
profile => $oauth2->oauth2_webserver,
token_type => 'Bearer',
);
$oauth2->access_token($token);
my $service = Net::Google::Spreadsheets->new(auth => $oauth2);
然後你可以使用那裏的服務。如果你想重複使用同一個標記,你還需要得到一個refresh_token,並且包含它,以及設置auto_refresh,但是如果你每次都生成一個新的,這應該起作用。
ELNJ,非常感謝您的回覆。這幾乎做了訣竅。這照顧了身份驗證,我唯一需要做的其他事情就是與我生成的服務帳戶電子郵件地址(而不是我的主要電子郵件地址)共享我的電子表格。 – NRH
太棒了,很高興它爲你工作,@NRH。您能否將答案標記爲「已接受」? – ELNJ