News

Hướng dẫn lấy access token của page từ GraphApi Facebook

ACCESS TOKEN PAGE

Ở bài http://lunar-vn.com/news/facebook-api/ , ta đã lấy được access token user. Bài hôm này ta sử dụng Graph Api để lấy access token của page mà bạn quản lý.
Bạn cần đăng nhập vào facebook rồi truy cập vào link như sau: https://developers.facebook.com/apps/
Sau đó bạn tạo 1 ứng dụng mới, và chọn vào mục Kinh Doanh, rồi đặt tên cho ứng dụng.
Truy cập vào trình khám phá API đồ thị.
Sau đó bạn lấy các mục như ứng dụng của bạn, page bạn làm admin và cấp quyền để tác động lên page. Cuối cùng bấm Generate Access Token để lấy mã access token page
Bên cạnh đó bạn cũng có thể lấy access token page bằng code python như sau:
Trước tiên, bạn cần lấy app id và secret id trong ứng dụng bạn đã tạo.
Sau đó bạn cài đặt thư viện facebook-sdk:
pip install facebook-sdk
Tiếp theo, bạn tạo 1 file .py.
import facebook
import request
#get long-lived token
url = "https://graph.facebook.com/oauth/access_token"
payload_lt={
    "grant_type": "fb_exchange_token",
    "client_id": app_id,
    "client_secret": app_secret,
    "fb_exchange_token": token,     #user token get from GraphApi Facebook
}
try:
    response_lt = requests.get(
        url,
        params = payload,
        timeout = 5,
    )
except requests.exceptions.Timeout as e:
    logging.error("TimeoutError", e)
long_token = response_lt.json()["access_token"] #This is long-lived token.
# Get long-lived access token page.
graph = facebook.GraphAPI(long_token)
token_page = graph.request("/{user-id}/accounts?access_token={long-lived-access-token}")
Access page token có dạng như sau:
{ "data":
        [
           {
            "access_token":"{long-lived-page-access-token}",
            "category":"Brand",
            "category_list":[ { "id":"1605186416478696", "name":"Brand" } ], 
            "name":"Cute Kitten Page", "id":"{page-id}",
            "tasks":[ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ],
            "paging":{ "cursors":{ "before":"MTM1MzI2OTg2NDcyODg3OQZDZD", "after":"MTM1MzI2OTg2NDcyODg3OQZDZD"} }
           }
        ]
}