如何使用 Graph API 在批处理请求中创建到 instagram 企业帐户的 jsonpath?
How to create a jsonpath to instagram business account in a batch request with the Graph API?
我的目标是创建一个带有相关调用的批处理请求,如下所述:
https://developers.facebook.com/docs/graph-api/making-multiple-requests#operations
除了查询字符串参数之外,您还可以在表单 post 参数中引用使用 JSONPath 的先前操作的结果。
当数据数组中有多个元素具有 instagram_business_account.id (iba_id)
时,我无法获得正确的 JSONPath 使其工作
我想打的两个电话是
/me/accounts?字段=instagram_business_account
/17841400714813297?fields=business_discovery.username(thomasguntenaar){media_count}
我的批次看起来像
[
{"method":"GET","name":"get-ig", "relative_url":"me/accounts?fields=instagram_business_account"},
{"method":"GET", "relative_url":"{result=get-ig:$.data..instagram_business_account.id}?fields=business_discovery.username(thomasguntenaar){media_count}}"}
]
在第二个查询中,您应该将 JSONPath 放入 Instagram 企业帐户 ID
在 result=
之后
我得到了这个错误
{
"code": 404,
"body": "{
\"error\": {
\"message\": \"(#803) Some of the aliases you requested do not exist: 17841400714813297,17841403388404550,17841401383243593\",
\"type\": \"OAuthException\",
\"code\": 803,
\"fbtrace_id\": \"FV8qA+oA7fp\"
}
}"
}
Facebook json 第一次调用后的响应是
{
"data": [
{
"id": "466912700123917"
},
{
"id": "502655553273897"
},
{
"instagram_business_account": {
"id": "17841400714813297"
},
"id": "503124266815195"
},
{
"instagram_business_account": {
"id": "17841403388404550"
},
"id": "510613645695833"
},
{
"instagram_business_account": {
"id": "17841401383243593"
},
"id": "2061834074114937"
}
],
"paging": {
"cursors": {
"before": "NDY2OTEyNzAwMTIzOTE3",
"after": "MjA2MTgzNDA3NDExNDkzNwZDZD"
}
}
}
当你这样查询第二个请求时
?ids=17841400714813297,17841403388404550,17841401383243593&fields=business_discovery.username(thomasguntenaar){username,media_count}
响应看起来像这样
{
"17841400714813297": {
"business_discovery": {
"username": "thomasguntenaar",
"media_count": 76,
"id": "17841400714813297"
},
"id": "17841400714813297"
},
"17841403388404550": {
"business_discovery": {
"username": "thomasguntenaar",
"media_count": 76,
"id": "17841400714813297"
},
"id": "17841403388404550"
},
"17841401383243593": {
"business_discovery": {
"username": "thomasguntenaar",
"media_count": 76,
"id": "17841400714813297"
},
"id": "17841401383243593"
}
}
(#803) Some of the aliases you requested do not exist: 17841400714813297,17841403388404550,17841401383243593
显然 API 认为这应该是 一个 id,并没有意识到它应该是三个独立的。
API 有一种语法,可以在一次请求中请求多个对象的数据 - 而不是 /{id}?fields=foo
,您可以发出 ?ids={1,2,3}&fields=foo
形式的请求,以请求一次性获取 ID 为 1、2 和 3 的对象的此数据。生成的数据结构将包含每个 ID 的 sub-structure。
相同的结构应该也适用于批处理请求,当动态插入部分(此处为先前查询返回的 IG 帐户 ID)时。
我的目标是创建一个带有相关调用的批处理请求,如下所述: https://developers.facebook.com/docs/graph-api/making-multiple-requests#operations
除了查询字符串参数之外,您还可以在表单 post 参数中引用使用 JSONPath 的先前操作的结果。 当数据数组中有多个元素具有 instagram_business_account.id (iba_id)
时,我无法获得正确的 JSONPath 使其工作我想打的两个电话是 /me/accounts?字段=instagram_business_account /17841400714813297?fields=business_discovery.username(thomasguntenaar){media_count} 我的批次看起来像
[
{"method":"GET","name":"get-ig", "relative_url":"me/accounts?fields=instagram_business_account"},
{"method":"GET", "relative_url":"{result=get-ig:$.data..instagram_business_account.id}?fields=business_discovery.username(thomasguntenaar){media_count}}"}
]
在第二个查询中,您应该将 JSONPath 放入 Instagram 企业帐户 ID
在 result=
之后
我得到了这个错误
{
"code": 404,
"body": "{
\"error\": {
\"message\": \"(#803) Some of the aliases you requested do not exist: 17841400714813297,17841403388404550,17841401383243593\",
\"type\": \"OAuthException\",
\"code\": 803,
\"fbtrace_id\": \"FV8qA+oA7fp\"
}
}"
}
Facebook json 第一次调用后的响应是
{
"data": [
{
"id": "466912700123917"
},
{
"id": "502655553273897"
},
{
"instagram_business_account": {
"id": "17841400714813297"
},
"id": "503124266815195"
},
{
"instagram_business_account": {
"id": "17841403388404550"
},
"id": "510613645695833"
},
{
"instagram_business_account": {
"id": "17841401383243593"
},
"id": "2061834074114937"
}
],
"paging": {
"cursors": {
"before": "NDY2OTEyNzAwMTIzOTE3",
"after": "MjA2MTgzNDA3NDExNDkzNwZDZD"
}
}
}
当你这样查询第二个请求时
?ids=17841400714813297,17841403388404550,17841401383243593&fields=business_discovery.username(thomasguntenaar){username,media_count}
响应看起来像这样
{
"17841400714813297": {
"business_discovery": {
"username": "thomasguntenaar",
"media_count": 76,
"id": "17841400714813297"
},
"id": "17841400714813297"
},
"17841403388404550": {
"business_discovery": {
"username": "thomasguntenaar",
"media_count": 76,
"id": "17841400714813297"
},
"id": "17841403388404550"
},
"17841401383243593": {
"business_discovery": {
"username": "thomasguntenaar",
"media_count": 76,
"id": "17841400714813297"
},
"id": "17841401383243593"
}
}
(#803) Some of the aliases you requested do not exist: 17841400714813297,17841403388404550,17841401383243593
显然 API 认为这应该是 一个 id,并没有意识到它应该是三个独立的。
API 有一种语法,可以在一次请求中请求多个对象的数据 - 而不是 /{id}?fields=foo
,您可以发出 ?ids={1,2,3}&fields=foo
形式的请求,以请求一次性获取 ID 为 1、2 和 3 的对象的此数据。生成的数据结构将包含每个 ID 的 sub-structure。
相同的结构应该也适用于批处理请求,当动态插入部分(此处为先前查询返回的 IG 帐户 ID)时。