我正在尝试访问 Google Tag Manager API 以通过我的 C# Web API 获取我的标签列表 如文档中所述,只能通过 OAuh 2.0 进行授权,因此我创建了一个服务帐户,以便我的 Web API 可以与之交互无需任何用户交互的谷歌云服务。我已经下载了 JSON/P12 密钥并将其存储在我的解决方案中,并且能够提取密钥但是当我将该密钥传递给 HTTPClient 请求的标头中的 Google Tag Manager API 时,我收到一个错误,因为找不到
以下是我正在使用的代码片段
string token = "";
using (FileStream stream = new FileStream(jsonKeyFilePath, FileMode.Open, FileAccess.Read))
{
token = await GoogleCredential
.FromStream(stream)
.CreateScoped(new []{ TagManagerService.Scope.TagmanagerReadonly})
.UnderlyingCredential
.GetAccessTokenForRequestAsync();
}
using HttpClient client = new HttpClient();
string url = "https://tagmanager.googleapis.com/tagmanager/v2/accounts/{accountid}/containers/{containerid}/workspaces/{workspaceid}/tags";
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
HttpResponseMessage response = await client.GetAsync(url);
if (response.IsSuccessStatusCode) // this is always returning false
{
log(response);
}
我尝试在网上查找一些资源,但没有任何帮助,与.Net 框架支持相关的文档非常少另外,通过提取的令牌GoogleCredential
最后包含很多点,如下所示
ta27.c.dzj7GOL8nadWmrqM74......................................................................................................................................................................................................................................................................................................................................................................................................
作为回应,我得到的状态为 NotFound