我正在使用Google的BatchRequest
来限制我正在进行的api调用的数量。
这是功能性的,并将所有触发器添加到google TagManager帐户。
除了当我排队> = 6时触发BatchRequest
。我收到的唯一错误是:error 400 invalid argument
。这是一个非常模糊的错误,可能有很多含义。除此之外,它什么也不会给我。(我已经检查了错误处理程序)
在回调中,content
(应为Trigger
)将为null。结果,我显然会收到错误Object reference not set to an instance of an object
它将前5个触发器添加到该帐户,但其余的将失败。
我100%确信参数正确,因为当我分别触发所有这些请求时,我可以使用完全相同的触发器。所有这些都将添加到TagManager帐户中。
我尝试过的事情:
BatchRequest
中仅排队5个触发器(此方法有效,但我需要更多:()下面的代码显示了我如何设置BatchRequest
:
//Create BatchRequest
var tagmanagerRequest = new BatchRequest(_tagManagerService);
//Queue all create trigger requests.
foreach (var keyValue in triggerDictionary)
{
tagmanagerRequest.Queue<Trigger>(_tagManagerService.Accounts.Containers.Workspaces.Triggers.Create(
keyValue.Value, $"accounts/{_tagManagerAccount.AccountId}/containers/{_analyticsTagDatas[portalId].GtmContainerId}/workspaces/{_analyticsTagDatas[portalId].GtmWorkspaceId}"),
(content, error, index, message) =>
{
//callback
//Get response and save generated TriggerId
keyValue.Key.GoogleTriggerId = content.TriggerId;
});
}
await tagmanagerRequest.ExecuteAsync().ConfigureAwait(false);
非常感谢您的帮助,因为我已经为这个问题苦苦挣扎了好几天。而且我真的很想使用这些BatchRequests而不是单独的请求来提高效率。