我正在尝试取消对 meta api 的 API 调用的动态化,但是 Meta 的 URL 模式涉及调用的根 url 每次都必须更改:
在我的主要查询中,我检索每个广告的 ID,然后调用以下函数(这是要调整的函数)=>
(adID as text)=>
let
baseurl = "https://graph.facebook.com/v15.0/"&adID&"/",
options = [RelativePath="insights?fields=campaign_name,impressions,reach,clicks,spend,cpc,ctr,conversions&date_preset=maximum&time_increment=monthly", Query=[access_token=metaUserToken]],
Source = Json.Document(Web.Contents(baseurl, options))
in
Source
问题是,这不是静态的,一旦在 PBI 服务中发布就会返回错误。我想知道是否有任何解决方法?
为了完整性,这里是我的主要查询代码:
它的第一部分也将针对非动态进行调整,但这不涉及根 url 所以很容易修复。
let
baseUri = "https://graph.facebook.com/v15.0/act_"&metaAdID&"/ads?access_token="&metaUserToken,
initReq = Json.Document(Web.Contents(baseUri)),
initData = initReq[data],
gather = (data as list, uri as text) =>
let
newUri = Json.Document(Web.Contents(uri))[paging][next],
newReq = Json.Document(Web.Contents(newUri)),
newData = newReq[data],
data = List.Combine({data, newData}),
check = if Table.Contains(Record.ToTable(newReq[paging]), [Name = "next"]) = false then data else @gather(data, newUri)
in
check,
outputList = if Table.Contains(Record.ToTable(initReq[paging]), [Name = "next"]) = true then @gather(initData, baseUri) else initData,
#"Converted to Table" = Table.FromList(outputList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id"}, {"id"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded Column1",{{"id", "adID"}}),
#"Added Custom" = Table.AddColumn(#"Renamed Columns", "Info", each **getMetaADInsights([adID]))**
最后一行“GetMetaAdInsights”参考上面的代码