使用Google驱动SDK的例子来读取电子表格
本文关键字:读取 电子表格 Google 驱动 SDK 使用 | 更新日期: 2023-09-27 18:18:38
我正在尝试使用google drive sdk示例来读取电子表格。
当我打开的例子,我得到这个错误:"未处理的异常发生.........返回意外结果"404"
我正在做以下事情:1)在登录部分,我输入我的用户名和密码正确(验证它几次,它是正确的)2)转到选项卡:"选定的电子表格"。然后出现错误
您遇到的问题类似于这个问题:谷歌驱动API到c#
你不能再登录到谷歌电子表格与旧的用户凭证(用户名/密码仅限)。你现在需要使用OAuth 2.0(它需要你在console.developers.google.com上创建一个应用程序和凭据)。
你可以使用下面的验证逻辑的例子,并使用在这个问题中找到的逻辑中的逻辑来实际操作文件:使用Google Data API使用c#访问Google电子表格
以下是我对链接问题的回答,以防将来被删除:这个例子需要你使用下面的nuget包和它们的依赖关系:
- Google.GData.Spreadsheets
此外,您必须转到https://console.developers.google.com并注册您的应用程序并为其创建凭据,以便您可以输入您的CLIENT_ID和CLIENT_SECRET。
这是我用来组合这个例子的文档:https://developers.google.com/google-apps/spreadsheets/
using System;
using System.Windows.Forms;
using Google.GData.Client;
using Google.GData.Spreadsheets;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
string CLIENT_ID = "YOUR_CLIENT_ID";
string CLIENT_SECRET = "YOUR_CLIENT_SECRET";
string SCOPE = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds";
string REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob";
OAuth2Parameters parameters = new OAuth2Parameters();
parameters.ClientId = CLIENT_ID;
parameters.ClientSecret = CLIENT_SECRET;
parameters.RedirectUri = REDIRECT_URI;
parameters.Scope = SCOPE;
string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
MessageBox.Show(authorizationUrl);
Console.WriteLine("Please visit the URL in the message box to authorize your OAuth "
+ "request token. Once that is complete, type in your access code to "
+ "continue...");
parameters.AccessCode = Console.ReadLine();
OAuthUtil.GetAccessToken(parameters);
string accessToken = parameters.AccessToken;
Console.WriteLine("OAuth Access Token: " + accessToken);
GOAuth2RequestFactory requestFactory =
new GOAuth2RequestFactory(null, "MySpreadsheetIntegration-v1", parameters);
SpreadsheetsService service = new SpreadsheetsService("MySpreadsheetIntegration-v1");
service.RequestFactory = requestFactory;
SpreadsheetQuery query = new SpreadsheetQuery();
SpreadsheetFeed feed = service.Query(query);
// Iterate through all of the spreadsheets returned
foreach (SpreadsheetEntry entry in feed.Entries)
{
// Print the title of this spreadsheet to the screen
Console.WriteLine(entry.Title.Text);
}
Console.ReadLine();
}
}
}