Python 未准备就绪:添加到Facebook自定义访问者时未上载文件

Python 未准备就绪:添加到Facebook自定义访问者时未上载文件,python,facebook,facebook-ads-api,Python,Facebook,Facebook Ads Api,我正在尝试使用Facebook用户API的2.1版将用户添加到Facebook自定义用户群中 我正在使用这个Python脚本创建一个新的受众,并向其中添加用户 import json, requests # set up params account_id = 'an ads account ID' audience_name = 'a new name' token = 'a valid access token' # create a new audience ID for poster

我正在尝试使用Facebook用户API的2.1版将用户添加到Facebook自定义用户群中

我正在使用这个Python脚本创建一个新的受众,并向其中添加用户

import json, requests

# set up params
account_id = 'an ads account ID'
audience_name = 'a new name'
token = 'a valid access token'

# create a new audience ID for posterity
url =  "https://graph.facebook.com/act_" + account_id + "/customaudiences"
response = requests.post(url, {"name": audience_name, "access_token": token})
resp_dict = json.loads(response.content)
audience_id = resp_dict["id"]

# output new audience name and ID
print("For audience name of:", audience_name)
print("Created audience ID of:", audience_id)

# add email addresses to the audience
the_file = open("the.payload", "r")
payload = the_file.read()
the_file.close()

url = 'https://graph.facebook.com/v2.1/' + audience_id + '/users'
params = {"access_token": token, "payload": payload}
response = requests.post(url, params=params)

# output results
print("Response status code:", response.status_code)
print("Response content:", response.content)
“有效载荷”的内容示例如下:

除此之外,在我的文件中,根据他们的文档,我有1100个有效的电子邮件地址,而不是只有2个格式为SHA256、以十六进制书写的有效电子邮件地址

运行此脚本时,我收到:

('For audience name of:', 'the name I gave')
('Created audience ID of:', u'a valid ID number')
('Response status code:', 200)
('Response content:', '{"audience_id":"a valid ID number","num_received":1100,"num_invalid_entries":0,"invalid_entry_samples":[]}')
然而,一个多小时后,用户界面上显示“未准备就绪,未上载文件”,这是使用此方法完成的100%上载。


有谁能告诉我如何更正代码以成功地将用户添加到自定义访问群体中?我已经对Facebook的文档进行了广泛的审查,但我相信我正在遵循它们的格式

这是我的哈希算法的一个问题

在发布这篇文章之后,我收到了一份电子邮件哈希算法的副本,该算法被证明是有效的。是这样的:

import hashlib
email = "somebody@somewhere.com"
email = email.strip().lower()
email = hashlib.sha256(email).hexdigest()
我将这里生成的哈希与我自己的哈希进行了比较,结果不一样。在通过剥离空白并在循环中不重用哈希器来纠正它之后,这个问题解决了

因此,未准备就绪可能是由于幕后的哈希问题,或是包含太少有效和匹配电子邮件地址的上传

import hashlib
email = "somebody@somewhere.com"
email = email.strip().lower()
email = hashlib.sha256(email).hexdigest()