Reputation: 2503
I started with Facebook Marketing API today. I am simply trying to read the campaigns from my Facebook Business account. I have an Ad account and a Campaign created there. I suppose my issue is with generating the Token.
I am simply generating the token from here: https://developers.facebook.com/tools/explorer?classic=0
And the error I get is:
{ error:
{ message: 'Unsupported get request. Object with ID \'10xxxxxxxx\' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api',
type: 'GraphMethodException',
code: 100,
error_subcode: 33,
fbtrace_id: 'E5CAU6UvHwF' } }
My Node.js code is:
const readCampaign = async (program) => {
const accessToken = TOKEN
const api = adsSdk.FacebookAdsApi.init(accessToken)
const account = new AdAccount('act_' + program.accountid)
console.log('act_' + account.id) // fields can be accessed as properties
let result
account.read([AdAccount.Fields.name])
.then((account) => {
return account.getCampaigns([Campaign.Fields.name], { limit: 10 }) // fields array and params
})
.then((result) => {
campaigns = result
campaigns.forEach((campaign) => console.log(campaign.name))
}).catch(console.error);
console.log(result)
}
To generate the Token I am choosing the App I created, "Get User Access Token" and then selected all possible permissions there - just to test this.
What am I doing wrong? Thanks
Upvotes: 0
Views: 4379
Reputation: 126
I suspecting this is due to a permission error.
First I would check that your app has access to the account you are trying to access.
Then I would suggest creating a system user through your business manager (can be found under business settings ), assigning it access to ad accounts, and utilizing the the system user's token when initializing the library.
One big advantage is that the system users's token does not have such a short expiration time.
Upvotes: 0