0

페이스 북 페이지를 만들었으며 아래 코드를 사용하여 페이지 벽에 게시하려고합니다. 이것은 파이썬으로 작성되었으며 페이스 북 SDK를 사용합니다.페이지 게시에 대한 Python facebook SDK 권한 오류

def main(): 
    cfg = { 
    "page_id"  : "PAGE_ID", # Step 1 
    "access_token" : "USER_ACCESS_TOKEN" # Step 3 
    } 

    graph = facebook.GraphAPI(cfg['access_token']) 
    id = graph.get_object('me')['id'] 
    print(graph.get_permissions(user_id=id)) 
    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'] 
    api = facebook.GraphAPI(page_access_token) 

    msg = "Hello, world!" 
    print(api.get_permissions(user_id=id)) 
    print(api.put_wall_post(msg)) 

이 오류로 출력 아래주고있다 :

{'user_posts', 'publish_actions', 'public_profile', 'pages_manage_cta', 'manage_pages'} 
{'user_posts', 'publish_actions', 'public_profile', 'pages_manage_cta', 'manage_pages'} 
    print(api.put_wall_post(msg)) 
    File "C:\Python34\lib\site-packages\facebook_sdk-3.0.0a0-py3.4.egg\facebook\__init__.py", line 188, in put_wall_post 
    File "C:\Python34\lib\site-packages\facebook_sdk-3.0.0a0-py3.4.egg\facebook\__init__.py", line 169, in put_object 
    File "C:\Python34\lib\site-packages\facebook_sdk-3.0.0a0-py3.4.egg\facebook\__init__.py", line 298, in request 
facebook.GraphAPIError: (#200) The user hasn't authorized the application to perform this action 

내가 뭘 잘못했는지 이해 해달라고? 나는 사용자에게 권한을 올바르게 부여했다. 내가 다른 중복 질문을 확인했지만 그들의 솔루션은 현재 facebookSDK와 함께 작동하지 않습니다. 누군가 나를 도울 수 있습니까?

+1

사용자는 페이지 – WizKid

+0

에 게시 할 수있는 게시 publish_pages가 필요합니다. 정말 고마워요, 저는 이것을 달성하기 위해 6 시간 동안 고심하고있었습니다. – pratibha

+0

답변으로 게시하여 허용으로 표시 할 수 있습니다. – pratibha

답변

0

게시 할 페이지의 경우 정보 탭에서 페이지 ID를 가져옵니다. 메모를 작성하거나 저장하십시오. https://developers.facebook.com/apps : 그런 다음,

  • 먼저 페이스 북의 개발자 콘솔에서 응용 프로그램을 만들 수 있습니다. 표시 이름과 이메일을 제공하려면 앱 ID 만들기를 클릭합니다.
    • 설정> 기본> 카테고리 선택 (Apps 용 페이지)> 변경 사항 저장을 클릭하십시오.
    • > 앱 리뷰로 이동> 'AppName'을 (를) 공용으로 설정> 예로 전환 한 다음 확인을 선택하십시오. 이렇게하면 앱이 공개됩니다.
    • 대시 보드로 다시 이동하여 앱 ID 및 앱 보안을 기록합니다 (옆에있는 표시를 클릭하면 fb 비밀번호를 묻습니다).

    지금 액세스 토큰을 생성합니다. 응용 프로그램 드롭 다운> 이전에 생성 한 응용 프로그램 선택> 토큰 가져 오기에서> 사용자 액세스 토큰 가져 오기> 권한 선택> manage_pages, publish_actions, publish_pages> 액세스 토큰 가져 오기에서 선택하십시오.

  • 사용자 (사용자 이름)로 계속을 클릭하면 토큰이 생성됩니다.
  • "액세스 토큰"필드에 나타나는 토큰은 수명이 짧은 액세스 토큰입니다. 이 토큰은 수명이 긴 토큰을 생성하는 데 필요하므로이 토큰을 저장하십시오.

수명이 짧은 토큰은 2 시간 이내에 만료됩니다. 토큰을 저장하십시오.

pip install facebook-sdk 

는 다음 코드를 사용 :

import facebook 

def main(): 
    # Fill in the values noted in previous steps here 
    cfg = { 
    "page_id"  : "value of the page id", # Step 1 
    "access_token" : "token you generated" # 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() 

를하거나 다음 사용할 수 있습니다 페이스 북 SDK를 설치

import facebook 
def main(): 
    graph = facebook.GraphAPI(access_token='your_user_access_token', version='2.8') 
    #if version 2.8 show error use 2.6 
    attachment = { 
     'name': 'Link name' 
     'link': 'https://www.example.com/', 
     'caption': 'Check out this example', 
     'description': 'This is a longer description of the attachment', 
     'picture': 'https://www.example.com/thumbnail.jpg' 
    } 

    graph.put_wall_post(message='Check this out...', attachment=attachment, profile_id='your_page_id') 

if __name__ == "__main__": 
    main() 

토큰 2 시간 이내에 만료됩니다 기억하십시오. 이 경우 수명이 긴 토큰이나 영구 토큰을 생성 할 수 있습니다.

+0

WizKid가 제공 한 솔루션을 주석에 사용했습니다. publish_pages 권한이 없습니다. 그것으로 문제가 해결되었습니다. – pratibha