Facebook有关为Leadgen创建测试线的文档相当乏味。但是,它们提供了一些有用的cURL命令,似乎可以完成工作:
curl \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<FORM_ID>/test_leads"
和
curl \
-F "field_data=[{'name': 'favorite_color?', 'values': ['yellow']}, {'name': 'email', 'values': ['test@test.com']}]" \
-F "custom_disclaimer_responses=[{'checkbox_key': 'my_checkbox', 'is_checked': true}]" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<FORM_ID>/test_leads"
就像我说的那样,这对我有用。但是,我想知道如何使用Python的requests
库及其post
方法发出此请求。
这是我正在使用的代码:
token = "<MY_TOKEN"
url = "https://graph.facebook.com/<MY_API_VERSION>/<MY_FORM_ID>/test_leads"
r = requests.post(url, headers={'access_token': token})
我似乎无法通过使用Python(从Facebook返回"code":100,"error_subcode":33
)来获得此请求,但是使用cURL可以很好地工作。我该怎么做才能使用我的Python脚本来使该请求正常工作。
编辑:结合我的问题如何在我的Post请求中传递访问令牌,我将如何传递在示例中显示的其他内容eh,field_data
和{{1} }?
EDIT2:如果我使用URL custom_disclaimer_responses
,则请求会顺利进行。我似乎无法通过标头传递它。
答案 0 :(得分:1)
对于
curl \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<FORM_ID>/test_leads"
在python中,您可以做
import requests
files = {
'access_token': (None, 'ACCESS_TOKEN'),
}
response = requests.post('https://graph.facebook.com/API_VERSION/FORM_ID/test_leads', files=files)
对于
curl \
-F "field_data=[{'name': 'favorite_color?', 'values': ['yellow']}, {'name': 'email', 'values': ['test@test.com']}]" \
-F "custom_disclaimer_responses=[{'checkbox_key': 'my_checkbox', 'is_checked': true}]" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<FORM_ID>/test_leads"
您可以在python中做
import requests
files = {
'field_data': (None, '[ {'name': 'favorite_color?', 'values': ['yellow'] }, {'name': 'email', 'values': ['test@test.com'] } ]'),
'custom_disclaimer_responses': (None, '[ { 'checkbox_key': 'my_checkbox', 'is_checked': 'true' } ]'),
'access_token': (None, 'ACCESS_TOKEN'),
}
response = requests.post('https://graph.facebook.com/API_VERSION/FORM_ID/test_leads', files=files)