小编DaI*_*mTo的帖子

谷歌播放开发者控制台离开共享帐户

我遇到了谷歌播放开发者控制台的问题.很久以前我被邀请在控制台中共享帐户,但现在当我尝试查看此帐户时,我收到一条消息"开发者帐户无效",但此帐户位于我的"共享帐户"列表中.所以问题是,如何离开这个帐户?

google-developers-console google-play-console

10
推荐指数
0
解决办法
578
查看次数

什么是 google oauth 同意屏幕值?

在 Google 上注册新的 oauth 客户端时,其 oauth 同意屏幕需要私有策略 url、应用主页 url 和授权 url。我正在 localhost 上开发如何获取它们

oauth google-oauth google-developers-console

10
推荐指数
1
解决办法
2万
查看次数

Google Calendar API - 不再被授权读取?

因此,使用日历 API 从公开可用的 Google 日历中提取所有事件。

这一直工作到今天早上。

由于我没有更新或进行任何数据更改,我们已经实现了一个 API 密钥来访问只读数据,如下所示:

https://www.googleapis.com/calendar/v3/calendars/[calendar ID]/events?timeZone=EDT&timeMin=2020-06-30T04:00:00.000Z&maxResults=6&singleEvents=true&orderBy=startTime&key=[API key]
Run Code Online (Sandbox Code Playgroud)

昨天拉好了,今天回来了:

代码:401 消息:凭据无效

对此有何想法?它影响了这个日历代码的几个实现(不同的键、域等),但具有相同的基本方法。

我还没有实现 gapi 客户端 javascript 库,现在可以开始研究了。

javascript google-calendar-api

10
推荐指数
1
解决办法
667
查看次数

YouTube API 配额,请解释一下。超出配额。怎么解决?

有人可以用简单的语言向我解释一下这些配额是如何运作的吗?

我知道哪里有类似的问题,但我想要与下面的屏幕截图相关的解释。

首先,我在 Google Dev Console 中打开 YouTube API 的配额页面。

但我不明白这些线是什么以及它们是如何工作的,为什么有几条线?

在此输入图像描述

例如,我试图提出一个像这样的简单请求

https://www.googleapis.com/youtube/v3/search?part=snippet&q=welcome&type=playlist&key=[MY_API-KEY]
Run Code Online (Sandbox Code Playgroud)

这会返回一个 json 响应:

{
  "error": {
    "code": 403,
    "message": "The request cannot be completed because you have exceeded your \u003ca href=\"/youtube/v3/getting-started#quota\"\u003equota\u003c/a\u003e.",
    "errors": [
      {
        "message": "The request cannot be completed because you have exceeded your \u003ca href=\"/youtube/v3/getting-started#quota\"\u003equota\u003c/a\u003e.",
        "domain": "youtube.quota",
        "reason": "quotaExceeded"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

所以,我认为它给了我一个错误,因为某个地方的配额=零,因为我只尝试发出此请求一次。

我应该怎样做才能消除这个错误并能够使用 API?

谢谢。

google-api youtube-api youtube-data-api google-developers-console

10
推荐指数
1
解决办法
2万
查看次数

将新的Jtoken添加到Json Jtoken

我有以下Json

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "required",
        "message": "Login Required",
        "locationType": "header",
        "location": "Authorization"
      }
    ],
    "code": 401,
    "message": "Login Required"
  }
}
Run Code Online (Sandbox Code Playgroud)

我所试图做的是增加一个新的JToken"message": "Login Required""RetryMessage": "Failed after 10 retries"

我发现了这个如何将一个JToken添加到JObject?我认为这不是很有效,因为错误是一个令牌,而不是一个对象,但我不确定.

我尝试过的:

var JsonObj = JObject.Parse(response);
var RetryMessageJson = JToken.Parse(@"{ ""RetryMessage"" : ""UnKnown""}");
JsonObj["error"]["message"].AddAfterSelf(RetryMessageJson);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上面的几个版本的代码,他们都回来了以下错误消息:

Newtonsoft.Json.Linq.JProperty cannot have multiple values.
Run Code Online (Sandbox Code Playgroud)

c# json

9
推荐指数
2
解决办法
2万
查看次数

使用Google Analytics分析报告API获取Play商店视图和"Google Play推介流程"等安装信息

我花了几个小时试图获得"Play商店视图"和"安装"指标,但我没有找到它.

我查看了文档,您可以在哪里找到所有尺寸/指标,但那些不存在.

我希望谷歌分析API的人可以帮助我解决这个问题.

Google Play推介流程

google-analytics google-api google-analytics-api

9
推荐指数
1
解决办法
482
查看次数

使用Json文件进行Google服务帐户身份验证

我一直关注Googles网站上的Oauth2服务帐户文档.我也一直在挑选Googles .net客户端库,试图让它工作.

我已经达到了计算机的签名阶段.

Google的隐私密钥如下所示

-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDcmuyQC8rwWdPQ\nmIdksgzSJbVWTU5MeUxy+HAap3yut9wR/L6KGMJ4FBYcsPmXN5gQAhErybavGoZG\nfS1X1/PCpPVpTCA4749K8gbvuZg1JEIAqMtmHiBBrJj5l8eiekQc8pd7Pq35H4wi\nJYXAJGwggPcttkLBRi0xZzd+jdwL1st+7zRt8nMao/xFibInBBvKwb/gP4mJxlQg\nnRdGO6zgMk+PLTcA5C+gFyPA4SdkylrLib5CJO9123FgcfTJZJTukeHo1v0EfU+4\n3bK8HBZnOFa4DHH4mXhkhgYMjibv4Sr/WCEoomJJwNN04SbUEdyhgpM2rZ3cvx+4\nsmB0SQflAgMBAAECggEAXZ100+/dL7++zh9cHVQdcrRDzprBplw3H/bjg7wdgftN\n7Wgm5214YQKNG6HSWORjqC9oX/+agZYs8w69xjBDJg9ggU2nwuGOGky4utQ0jiCT\nzbnTjsMsBxKaXBiXxBBEhVBBDjDcHQLRMdBggNgz9lskCYb1rxT7qqJVf2PtxCuZ\nuxw3whLMRHXvKosER12sMQgGB/0+Nk86GWCqPigpfu7Ec92V0ffcSUaq3gjIUD54\n67TduTWaRDQNB+j2yQsWQZnqRv+TvIXOjinAI+pPbvCUovtiTSZAoz3EalsiXQ0l\nUqDVx26uzEJqhB2kzvAeApuW2Nd5EPxUnf48c4xh4QKBgQDw01mEChWyENV5CBKU\nMSfY0rpAPtq7ahHRR458ZKtITDBlqiZLMjydI65Rr1XxpQ3pJZALObMdUhbvCDfm\nu4BY/lCCt+hcdt9IICvVZsgXgvb6M+Fj2IbYZcAnOm4T1Z1D3I+pW5NdK2ALQRiK\nWsGINOqWCB9WRd7nhmb/XwWyjQKBgQDqgWht5laDuLMc4qpj9finY4qmk57eT3KG\npzbVlT3h7kv7j/j6e+6o9psrqdf1PXpu9XZi3bPtPbH1fX9x5pZgJQRMP4FGOURY\nQDkJfiOOSN/8Vl0senqkscT7DSbe2BqyqQlSlTB4BBF29p1wxb5Wz5HH2BvYE2zI\ni9B4WJcAuQKBgADnajCasRYoBgUcSKWRwaqIr/ZJxhxp+4Mjl59T6WiuEIhxKQ+j\nMqMMXT0lQVdU3UaAw5enMcrsYfWnvD37ejHbUoYLFq4yLAhjRobYieu8rByoUTJE\nv8zUJPKAv6UHaj20+D0UgOsanJOuPN9YE93lBPRnN2blgD6yPHS88JKJAoGABFyh\n16F4LH0L/9aLes6BcIOeeZi3VMU/iRelInXjL8eh7CzyYZ5agxQLMNW46ZvaIiQ4\nroAXL6t9GubZrwGt/F3T5aMswWShS87uAKoy+RuL5wKoOwKQM24HDvBgr7ZvULFq\nNfoGa8UPmhneNdHHx4+W05PGeM9rr5NCLmrfbCkCgYA0nMvEDIJvU3KA3S1cQ3fs\nVopRJwqRIFFL1cHTWaEyIsxEh6i/zAUc/habK82dN3/ZDn/XvWY14k7VZPsSdDC9\noVlQj2z8DVO2K99Oxyh0VlthtecW8exjzkIPJL4srOSl/dooQZS/7ZZyaRQU/BLI\nMdzKHlUKKXWcUU+Ko8W4+w\u003d\u003d\n-----END PRIVATE KEY-----\n
Run Code Online (Sandbox Code Playgroud)

清理钥匙

首先,我清理了一下钥匙

private const string PrivateKeyPrefix = "-----BEGIN PRIVATE KEY-----";
private const string PrivateKeySuffix = "-----END PRIVATE KEY-----";

 /// <summary>Converts the PKCS8 private key to RSA parameters. This method uses the Bouncy Castle library.</summary>
        private static RSAParameters ConvertPKCS8ToRSAParameters(string pkcs8PrivateKey)
        {

            var base64PrivateKey = pkcs8PrivateKey.Replace(PrivateKeyPrefix, "").Replace("\r\n", "").Replace(PrivateKeySuffix, "");           
            var privateKeyBytes = Convert.FromBase64String(base64PrivateKey);
            RsaPrivateCrtKeyParameters crtParameters = (RsaPrivateCrtKeyParameters)PrivateKeyFactory.CreateKey(privateKeyBytes);           


            return DotNetUtilities.ToRSAParameters(crtParameters);
        }
Run Code Online (Sandbox Code Playgroud)

导入参数

 RSAParameters rsaParameters = ConvertPKCS8ToRSAParameters(results.private_key);
 RSACryptoServiceProvider key …
Run Code Online (Sandbox Code Playgroud)

c# google-api jwt google-oauth service-accounts

9
推荐指数
1
解决办法
2138
查看次数

共享 Google API 项目的客户端机密是否存在任何安全问题?

我正在使用 YouTube 数据 API 开展一个项目。我正在运行的 Python 脚本使用客户端机密 JSON 文件,我认为该文件用于验证帐户所有者。

如果我遇到问题并需要帮助,公开分享是否有任何安全问题?如果它私下保存在私人 github 存储库中,它甚至可以吗?

oauth google-api google-oauth youtube-data-api

9
推荐指数
1
解决办法
455
查看次数

调用 GMAIL API 时出现间歇性错误 - “调用者没有权限”

间歇性地收到此错误

请求https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest时的 HttpError 403返回“调用方没有权限”

它有时有效,有时则无效。我在 oauth2 操场上看到了同样的问题

这是我的代码 -

googlecredentials = GoogleCredentials(
    access_token=None,
    client_id='xxx',
    client_secret='xxxx',
    refresh_token='xxxx',
    token_expiry=None,
    token_uri="https://www.googleapis.com/oauth2/v3/token", 
    user_agent='Python client library'
)

service = build('gmail', 'v1', credentials=googlecredentials)

results = service.users().labels().list(userId='me').execute()
labels = results.get('labels', [])
response = service.users().messages().list(userId='me', q='subject:FDA').execute()
print(response)
Run Code Online (Sandbox Code Playgroud)

python oauth2-playground google-oauth google-api-python-client gmail-api

9
推荐指数
1
解决办法
354
查看次数

序列化为json时如何忽略空列表?

我试图弄清楚如何序列化为 json 对象并跳过序列化值为空列表的属性。 我没有使用 Newtonsoft json

using System.Text.Json;
using System.Text.Json.Serialization;
using AutoMapper;
Run Code Online (Sandbox Code Playgroud)

我有一个带有属性的对象。

[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("extension")]
public List<Extension> Extension { get; set; }
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令序列化该对象时

var optionsJson =   new JsonSerializerOptions
    {
    WriteIndented = true,
    IgnoreNullValues = true,
    PropertyNameCaseInsensitive = true,
    };

var json = JsonSerializer.Serialize(report, optionsJson);
Run Code Online (Sandbox Code Playgroud)

它仍然给我一个空数组:

"extension": [],
Run Code Online (Sandbox Code Playgroud)

有没有办法阻止它序列化这些空列表?我愿意看到extension消失。它根本不应该存在。我需要这样做,因为如果我发送以下内容,网关将响应错误:

"extension": null,
Run Code Online (Sandbox Code Playgroud)

序列化时它不能是对象的一部分。

网关错误

我不想要这些空列表的原因是我发送到对象到空列表的第三方网关

"severity": "error", "code": "processing", "diagnostics": "数组不能为空 - 如果属性没有值,则不应存在", "location": [ "Bundle.entry[2 ].resource.extension", "第 96 行,第 23 栏"]

我试图避免对此进行某种令人讨厌的字符串替换。

c# json system.text.json .net-6.0

9
推荐指数
1
解决办法
7324
查看次数