【问题标题】:Google Sheets API, Get Spreadsheets for user in C#Google Sheets API,在 C# 中为用户获取电子表格
【发布时间】:2017-08-19 19:40:11
【问题描述】:

我正在开发 Xamarin.Forms 应用程序,我想做的是:

  • 使用 Auth0 2.0 在 Google 中对用户进行身份验证
  • 之后我收到令牌响应
  • 获取用户帐户中的所有电子表格

目前,我知道 Google 用最新版本更新了很多他们的 API,我再也不能使用 SpreadsheetsService。我在官方文档中看到的是他们使用的是SheetsService,至少他们使用的是here

这是我现在的代码:

var service = new SheetsService(new BaseClientService.Initializer
{
    HttpClientInitializer = this.userCredential,
    ApplicationName = Statics.StaticStrings.AppDomain.ApplicationName
});

var spreadsheetId = "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms";
var range = "Class Data!A2:E";
SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range);

到目前为止它正在工作,但我遇到的问题是,如果我有它的 ID,我可以获得电子表格,但我不确定从哪里可以得到它,当然我不想硬编码(没有意义)。

this.userCredentialGoogle.Apis.Auth.OAuth2.UserCredential 类型的字段,我在其中传递 (IAuthorizationCodeFlow flow, string userId, TokenResponse token),所以在传递令牌后,我希望我的用户已经登录。

我的问题是,我怎样才能获得经过身份验证的用户被授权的所有电子表格,以便之后我可以使用它们?

提前致谢!

【问题讨论】:

标签: c# .net xamarin google-sheets xamarin.forms


【解决方案1】:

【讨论】:

  • 非常有效,谢谢。但现在看起来我还有其他问题。如果您在“GoogleWebAuthorizationBroker.AuthorizeAsync”上打开此屏幕截图prntscr.com/gatyaq,我会收到异常“无法使用 \”accounts.google.com/o/oauth2/v2/…... 启动浏览器。我读到这可能来自 client_secret.json。但我只是从这里下载"prntscr.com/gatytp" 并将其添加到项目中。
  • 您的目标是哪个平台?
  • 您看到的源代码在 Android 项目内部。目标版本“使用 SDK 版本编译”和目标框架“Android 7.0”
  • 由于 android 平台某些原因,屏幕截图附加代码无法午餐浏览器。尝试使用 Android API developers.google.com/sheets/api/quickstart/android 的替代方法
  • 从我在 github.com/xamarin/google-apis 中看到的,这仅适用于 Android,在我的情况下,我有 Xamarin.Forms,所以我也需要它用于 IOS 或 PCL。与您发送的 android quickstart 类似。在这种情况下,我也需要 IOS,实际上我不是在模拟器中,而是在我的真实设备(三星 Galaxy S6 Edge)上运行该应用程序
【解决方案2】:
public IList<Google.Apis.Drive.v3.Data.File> GetAllFiles()
{
    // Define parameters of request.
    FilesResource.ListRequest listRequest = service.Files.List();
    listRequest.PageSize = 10;
    listRequest.Q = "mimeType='application/vnd.google-apps.spreadsheet'";

    // List files.
    return  listRequest.Execute().Files;
}

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多