Tag: google api

我在哪里可以找到ServiceAccountCredential

我在使用asp.net c#的google api工作,我的目标是使用服务帐户访问google api。 我已导入所有需要的dll以创建服务帐户以访问管理员function(admin sdk)。 但我找不到ServiceAccountCredential。 我如何在我的项目中实现这一点?

使用C#和Sheets API v4更新Cell

有没有人有一个很好的C#示例用于使用v4 API更新单元格? 我在使用Google表格API v4的开发者网站上获得了获取单元格值c#示例。 我试图修改示例以更新值为“Tom”的单元格。 我坚持使用SpreadSheets.Values.Update的设置。 using Google.Apis.Auth.OAuth2; using Google.Apis.Sheets.v4; using Google.Apis.Sheets.v4.Data; using Google.Apis.Services; using Google.Apis.Util.Store; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace GoogleSheetsAPI4_v1console { class Program { // If modifying these scopes, delete your previously saved credentials // at ~/.credentials/sheets.googleapis.com-dotnet-quickstart.json static string[] Scopes = { SheetsService.Scope.Spreadsheet […]

如何从xamarin.forms中的Google电子表格中读取数据

我正在寻找一种直接从Google Sheets读取/写入数据的方法。 有没有人知道如何在Xamarin.Forms中做到这一点 ? 请记住,使用Install-Package Google.Apis.Sheets.v4 Package,从Windows Form访问Google sheets表格。 我使用以下链接: https://developers.google.com/sheets/api/quickstart/dotnet

validationGoogle Id令牌

我正在使用ASP.NET Core为Android客户端提供API。 Android以Google帐户登录,并将ID令牌JWT传递给API作为持票人令牌。 我有应用程序工作,它确实通过了身份validation检查,但我不认为它正在validation令牌签名。 根据Google的文档,我可以将此url称为https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123 ,但我无法在服务器端找到相应的挂钩来执行此操作。 另外根据Google文档,我可以以某种方式使用客户端访问API来执行此操作,而无需每次都调用服务器。 我的配置代码: app.UseJwtBearerAuthentication( new JwtBearerOptions() { Authority = “https://accounts.google.com”, Audience = “hiddenfromyou.apps.googleusercontent.com”, TokenValidationParameters = new TokenValidationParameters() { ValidateAudience = true, ValidIssuer = “accounts.google.com” }, RequireHttpsMetadata = false, AutomaticAuthenticate = true, AutomaticChallenge = false, }); 如何让JWTBearer中间件validation签名? 我已经接近放弃使用MS中间件并自己动手了。

Google .NET API – 除FileDataStore之外的任何其他DataStore?

我正在使用Google .NET API从谷歌分析中获取分析数据。 这是我开始身份validation的代码: IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = new ClientSecrets { ClientId = googleApiClientId, ClientSecret = googleApiClientSecret }, Scopes = new[] { Google.Apis.Analytics.v3.AnalyticsService.Scope.AnalyticsReadonly }, DataStore = new Google.Apis.Util.Store.FileDataStore(“Test_GoogleApi”) }); 它使用FileDataStore作为文件存储在本地用户配置文件中。 我在ASP.NET应用程序中运行此代码,因此我无法真正使用该FileDataStore,因此我需要的是另一种获取数据的方法。 Google.Apis.Util.Store仅包含FileDataStore和IDataStore的接口。 在我开始实现自己的DataStore之前 – 是否还有其他可供下载的DataStore对象? 谢谢

如何在.net中使用Google OAuth2使用ServiceAccount?

是否有任何示例如何使用.net中的服务帐户访问Google服务API? private const string SERVICE_ACCOUNT_EMAIL = “xxxxxxxxxxx@developer.gserviceaccount.com”; private const string SERVICE_ACCOUNT_PKCS12_FILE_PATH = @”\path\test-privatekey.p12″; static DriveService BuildService() { X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, “notasecret”, X509KeyStorageFlags.Exportable); var provider = new AssertionFlowClient(GoogleAuthenticationServer.Description, certificate) { ServiceAccountId = SERVICE_ACCOUNT_EMAIL, Scope = DriveService.Scopes.Drive.GetStringValue(), }; var auth = new OAuth2Authenticator(provider, AssertionFlowClient.GetState); return new DriveService((new BaseClientService.Initializer() { Authenticator = auth }); } 这在返回OAuth连接时不成功。 […]

Google Calendar V3 2 Legged身份validation失败

我正在尝试创建访问公司(业务)私人日历的网页,并在时隙可用时插入事件。 我仍面临身份validation问题。 API手册指出我应该使用API​​密钥和Oauth2LeggedAuthenticator,所以我做了所有这些并且被触发的请求非常好(它有一个oauth令牌等)但是响应是一个带有无效凭据的exception; 很容易说我的凭据是错误的,仍然是clientID,clientSecret和API Key是有效的; 我怀疑2leged认证者的最后两个参数,这是正确的吗? var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description); provider.ClientIdentifier = ClientCredentials.ClientID; provider.ClientSecret = ClientCredentials.ClientSecret; var authenticator = new OAuth2LeggedAuthenticator(ClientCredentials.ClientID, ClientCredentials.ClientSecret, “myworkusername”, “workdomain.com”); Google.Apis.Calendar.v3.CalendarService service = new Google.Apis.Calendar.v3.CalendarService(authenticator); service.Key = ClientCredentials.ApiKey; var result = service.CalendarList.List().Fetch(); Assert.IsTrue(result.Items.Count > 0);

Google.GData.Client.GDataRequestException – 旧代码中的身份validation突然失败

尝试在Google云端硬盘上validation和访问电子表格时,我突然开始出现以下exception: 未处理的exception:Google.GData.Client.GDataRequestException:执行aut hentication请求返回意外结果:Google.GData.Client.Utilities.QueryClientLoginToken上的Google.GData.Client.Utilities.getAuthException(TokenCollection tokens,Htt pWebResponse响应)中的404 GDataCredentials gc,S service service,String applicationName,Boolean fUseKeepAlive,IWebProxy prox yServer,Uri clientLoginHandler)at Google.GData.Client.GDataGAuthRequest.QueryAuthToken(GDataCredentials gc)at Google.GData.Client.GDataGAuthRequest.EnsureCredentials()at Google.GData .Client.GDataRequest.EnsureWebRequest()位于Google.GData的Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter)上的Google.GData.Client.GDataRequest.Execute()Google.GData.Client.GDataGAuthRequest.EnsureWebRequest() Google.GData.Client.Service.Query(FeedQu)上的.Client.GDataGAuthRequest.Execute()at Google.GData.Client.Service.Query(Uri queryUri,DateTime ifModifiedSince,String etag,Int64&contentLength) 来自GoogleLogger.GoogleService.getLastXECLogRows(String folderName,String fileName,Int32 rows)的Google.GData.Documents.DocumentsService.Query(DocumentsListQuery feedQuery)的ery feedQuery) 这是代码已经运行了两年没有任何问题。 我首先想到我可能已经失去了我的生产系统的访问权限,但谷歌驱动器在我的网络浏览器中加载得很好。 在其他几个系统上尝试过它并且得到了相同的结果。 他们今天在Google API中有什么变化吗? 这不可能是巧合!

Google+ API:如何在每次启动应用时使用RefreshTokens来避免请求访问权限?

我正在尝试使用Google+ API访问经过身份validation的用户的信息。 我从其中一个示例中复制了一些代码,这样可以正常工作(下图),但是我无法使其在我可以跨应用程序启动重用令牌的方式工作。 我尝试捕获“RefreshToken”属性并使用provider.RefreshToken() (以及其他内容)并始终获得400 Bad Request响应。 有谁知道如何使这项工作,或知道我在哪里可以找到一些样品? 谷歌代码网站似乎没有涵盖这个:-( class Program { private const string Scope = “https://www.googleapis.com/auth/plus.me”; static void Main(string[] args) { var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description); provider.ClientIdentifier = “BLAH”; provider.ClientSecret = “BLAH”; var auth = new OAuth2Authenticator(provider, GetAuthentication); var plus = new PlusService(auth); plus.Key = “BLAH”; var me = plus.People.Get(“me”).Fetch(); Console.WriteLine(me.DisplayName); } private […]

Google Weather API 403错误

我决定从Google的Weather API中提取信息 – 我在下面使用的代码工作正常。 XmlDocument widge = new XmlDocument(); widge.Load(“https://www.google.com/ig/api?weather=Brisbane/dET7zIp38kGFSFJeOpWUZS3-“); var weathlist = widge.GetElementsByTagName(“current_conditions”); foreach (XmlNode node in weathlist) { City.Text = (“Brisbane”); CurCond.Text = (node.SelectSingleNode(“condition”).Attributes[“data”].Value); Wimage.ImageUrl = (“http://www.google.com/” + node.SelectSingleNode(“icon”).Attributes[“data”].Value); Temp.Text = (node.SelectSingleNode(“temp_c”).Attributes[“data”].Value + “°C”); } } 正如我所说,我能够从XML文件中提取所需的数据并显示它,但是如果刷新页面或当前会话仍处于活动状态,我会收到以下错误: WebException未被用户代码处理 – 远程服务器返回错误:403 Forbidden Exception。 我想知道这是否与访问该特定XML文件的某种访问限制有关? 进一步研究和改编建议 如下所述,这绝不是最佳实践,但我已经包含了我现在用于例外的捕获。 我在Page_Load上运行此代码,所以我只是回到页面。 从那以后我没有发现任何问题。 性能方面我并不过分担心 – 我没有注意到任何负载时间的增加,这个解决方案是暂时的,因为这一切都是出于测试目的。 我还在使用Yahoo的Weather API。 try […]