Документация Facebook по созданию тестового провода для свинца довольно скудна. Тем не менее, они предоставляют некоторые команды 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 (возвращая "code":100,"error_subcode":33
из Facebook), но он прекрасно работает, используя cURL. Что я могу сделать, чтобы этот запрос работал, используя мой скрипт на Python.
РЕДАКТИРОВАТЬ: В связи с моим вопросом о том, как передать токен доступа с моим запросом Post, как бы я мог передать другие вещи, которые они показывают в своем примере, например, field_data
и custom_disclaimer_responses
?
EDIT2: если я использую URL "https://graph.facebook.com/<MY_API>/<MY_FORM_ID>/test_leads?access_token="+token
, запрос проходит легко и просто. Я просто не могу передать это через заголовки.