web-dev-qa-db-fra.com

Comment écrire un article sur Facebook en utilisant python

J'ai essayé avec un exemple de code que j'ai trouvé sur google ..

import facebook

def main():
   # Fill in the values noted in previous steps here
    cfg = {
    "page_id"      : "XXXXXXXXXXXXXX",  # Step 1
    "access_token" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"   # Step 3
    }

    api = get_api(cfg)
    msg = "Hello, world!"
    status = api.put_wall_post(msg)

def get_api(cfg):
     graph = facebook.GraphAPI(cfg['access_token'])
     # Get page token to post as the page. You can skip 
     # the following if you want to post as yourself. 
     resp = graph.get_object('me/accounts')
     page_access_token = None
    for page in resp['data']:
        if page['id'] == cfg['page_id']:
            page_access_token = page['access_token']
    graph = facebook.GraphAPI(page_access_token)
    return graph

if __name__ == "__main__":
     main()

Mais je reçois cette erreur:

AssertionError: les opérations d'écriture nécessitent un jeton d'accès sur la ligne status = api.put_wall_post(msg).

Quelqu'un peut-il m'aider à résoudre le problème?

images

6
sowmya

J'espère que le code ci-dessus fonctionne correctement si vous fournissez un identifiant de page et un jeton d'accès. Veuillez suivre les étapes ci-dessous pour obtenir le jeton d'accès et l'ID de page.

  1. Allez dans Graph API Explorer

2.Choisissez votre application dans le menu déroulant

3.Cliquez sur "Obtenir un jeton d'accès"

4.Choisissez l'autorisation manage_pages (vous pouvez également avoir besoin de l'autorisation user_events, pas sûr)

5.Accédez maintenant à la connexion moi/comptes et copiez le access_token de votre page

6.Cliquez sur l'identifiant de votre page

7.Ajoutez le access_token de la page aux champs GET

8.Appelez la connexion que vous souhaitez (par exemple: PAGE_ID/événements)

Ce sujet a déjà été discuté dans Facebook Access Token for Pages

1
sandeep kumar

Pour écrire un message sur Facebook en utilisant python, nous avons besoin de access_token pour cela.

graph = facebook.GraphAPI(access_token="XXXXXXXX")
print graph
#to post to your wall
graph.put_object("me", "feed", message="Posting on my wall1!")
#to get your posts/feed
feed = graph.get_connections("me", "feed")
post = feed["data"]
print post
#to put comments for particular post id
graph.put_object(post["id"], "comments", message="First!")
1
sowmya

Vérifié en mars 2020:

!pip install facebook-sdk==2.0.0

puis:

import facebook

def main():
   # Fill in the values noted in previous steps here
   cfg = {
   "page_id"      : "1xxxxx48480xxxx",  # Step 1
   "access_token" : "xxxxxxxxxxxxxxxxxxxxxxxnp3QApxv12gjGnV99BNnhxxxxxxxxxx"   # Step 3
    }

    api = get_api(cfg)
    msg = "Hello, world!"
    status = api.put_wall_post(msg)

def get_api(cfg):

    graph = facebook.GraphAPI(cfg['access_token'])
    resp = graph.get_object('me/accounts')
    page_access_token = None
    for page in resp['data']:
    if page['id'] == cfg['page_id']:
        page_access_token = page['access_token']
    graph = facebook.GraphAPI(page_access_token)
    return graph

if __name__ == "__main__":
 main()

Compte tenu des autorisations: nous avons besoin des autorisations manage_pages publish_pages.

id de page vous pouvez trouver au bas de la section à propos de votre page.

0
Sourabh Sinha