# 4.2 Facebook Graph API

要使用FB Graph API, 要先取得自己的token, 可以到這個網站去申請: <https://developers.facebook.com/tools/explorer>

點選"取得token" -> "取得用戶存取token" -> 勾選你想讓這個token可以取得的資訊 -> 得到token

把這個token記著, 等等程式裡面要用(ACCESS\_TOKEN).

```python
import requests


# To obtain the access token, go to https://developers.facebook.com/tools/explorer.
ACCESS_TOKEN = ''


def get_my_friends():
    url = 'https://graph.facebook.com/v2.9/me?fields=id,name,friends&access_token={}'.format(ACCESS_TOKEN)
    data = requests.get(url).json()
    print('My ID: ' + data['id'])
    print('My name: ' + data['name'])
    print('Total friends: ', data['friends']['summary']['total_count'], 'friends.')


def get_page_post(page_id):
    url = 'https://graph.facebook.com/v2.9/{0}/posts?access_token={1}'.format(page_id, ACCESS_TOKEN)
    data = requests.get(url).json()
    print('There are ', len(data['data']), ' posts on the fans page.')
    print('The latest post time is: ', data['data'][0]['created_time'])
    print('Content:', data['data'][0]['message'])


def main():
    get_my_friends()
    get_page_post(1707015819625206)


if __name__ == '__main__':
    main()
```

輸出結果:

```
My ID: XXX
My name: Carl Lu
Total friends:  XX friends.
There are  19  posts on the fans page.
The latest post time is:  2017-05-19T19:39:06+0000
Content: 哇忘記說了~ PyCon Taiwan報名截止了 >< 大家都報名了嗎?

PyCon Taiwan 是台灣 Python 愛好者的年會，每年可以看到大家用 Python 做了哪些好玩有趣的專案，或是相關技術分享。今年的議程不意外地涵蓋許多機器學習、數據分析、聊天機器人的應用。而跟爬蟲直接相關的講題或應用有 "比美麗的湯更美麗：pyquery"，以及 "用Python成為網路投資王" 兩場，官方網站如下:
https://tw.pycon.org/2017/zh-hant/

沒有報名到的朋友也別擔心，屆時官方粉絲頁可能會有直播。我們也會參加~ 之後會跟大家分享心得，敬請期待！

P.S. 去年我們的講師 Jun-Wei Lin 參加 PyConTW 2016 的心得可以參考這裡
http://blog.castman.net/programming/2016/06/05/pycontw2016.html

Process finished with exit code 0
```

原始碼[點我](https://github.com/yotsuba1022/web-crawler-practice/blob/master/ch4/fb_graph_api.py)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://clu.gitbook.io/python-web-crawler-note/42-facebook-graph-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
