fb graph API posten op pages
eerst zie ik bij access tokens debugger dat ik alle rechten heb geactiveerd bij een type: user:
https://developers.facebook.com/tools/debug/accesstoken/
Quote:
email, read_insights, publish_video, catalog_management, pages_manage_cta, pages_manage_instant_articles, pages_show_list, read_page_mailboxes, ads_management, ads_read, business_management, pages_messaging, pages_messaging_phone_number, pages_messaging_subscriptions, instagram_basic, instagram_manage_comments, instagram_manage_insights, instagram_content_publish, publish_to_groups, groups_access_member_info, leads_retrieval, whatsapp_business_management, attribution_read, pages_read_engagement, pages_manage_metadata, pages_read_user_content, pages_manage_ads, pages_manage_posts, pages_manage_engagement, public_profile
Deze user is ook de admin van de page:
Nu bij de type Page staat dit ook met een adnere access token staat dit ook.
Als ik nu hierheen ga: https://developers.facebook.com/tools/explorer/
Dan werkt deze post request:
https://graph.facebook.com/{page-id}/feed?message=HelloFans&access_token={page_access_token}
Dan komt dit ook op de page te staan.
Maar als ik dit vanuit een domein doe, met de page_token, zie ik niks gebeuren.
Als ik dan de user access gebruik met dezelfde page-id.
Dan krijg ik dit:
Quote:
{
"error": {
"message": "(#200) If posting to a group, requires app being installed in the group, and \
either publish_to_groups permission with user token, or both pages_read_engagement \
and pages_manage_posts permission with page token; If posting to a page, \
requires both pages_read_engagement and pages_manage_posts as an admin with \
sufficient administrative permission",
"type": "OAuthException",
"code": 200,
"fbtrace_id": "AimjgGSepFUVE1G7NhzY4Q9"
}
}
"error": {
"message": "(#200) If posting to a group, requires app being installed in the group, and \
either publish_to_groups permission with user token, or both pages_read_engagement \
and pages_manage_posts permission with page token; If posting to a page, \
requires both pages_read_engagement and pages_manage_posts as an admin with \
sufficient administrative permission",
"type": "OAuthException",
"code": 200,
"fbtrace_id": "AimjgGSepFUVE1G7NhzY4Q9"
}
}
Alle rechten staan aan, dus snap niet hoe dit nu opgelost kan worden.
Volgens mij schrijf je dat je direct een POST-verzoek doet vanuit een ander domein, misschien maakt het uit als je het onder water via cURL probeert, waarin je meer opties hebt om de FB API tegemoet te komen.
Verder zou ik het niet weten helaas.
Als er niets gebeurd aan de FB-kant zou je verwachten dat de API je verteld wat er dan niet klopt.
Wat betreft de foutmelding die je krijgt met de user-access:
Eigenlijk geeft de foutmelding al aan waar het mis gaat.
Het is niet persé een fout in de manier waarop FB word aangeroepen maar in de inrichting van de permissies.
FB gebruikt OAuth2 (met als extensie OpenID Connect) om authorisatie te delegeren.
OAuth2 is degene die de fout teruggeeft, daar zit dus het probleem. Aangezien je alle permissies hebt toegekend aan de gebruiker lijkt mij het probleem te zitten bij de scope van het token (page token vs user/app token).
Wat leesvoer:
https://developers.facebook.com/docs/facebook-login/access-tokens/#access-tokens
https://aaronparecki.com/oauth-2-simplified/