问题描述
我正在使用以下方法使用 vObjects 模块创建我的 vCard:
def _create_vcard(assigned_address,write_to_disk=False):
vCard = vobject.vCard()
vCard.add('N').value = vobject.vcard.Name(given='EXAMPLE')
vCard.add('FN').value = "EXAMPLE"
vCard.add('EMAIL')
vCard.email.value = '[email protected]'
vCard.email.type_param = 'SUPPORT_EMAIL'
vCard.add('TEL')
vCard.tel.value = assigned_address
vCard.tel.type_param = 'SYstem_NUMBER'
vCard.add('URL')
vCard.url.value = 'https://X.com/'
vCard.url.type_param = 'WEBSITE'
vCard.add('PHOTO;ENCODING=b;TYPE=image/jpeg').value = _b64_image('assets/example.jpg') # This line
vCard_data = vCard.serialize()
然后将序列化数据发送到公共 S3 存储桶
def _write_vcard_to_s3_bucket(vCard_data,number):
file_name = number[1:-1] + ".vcf"
client = boto3.client('s3')
response = client.put_object(
Bucket='EX-vcards',Body=vCard_data,Key=file_name,ContentType='text/x-vcard'
)
bucket_url = f'https://EX.s3.amazonaws.com/{file_name}'
return bucket_url
Twilio 代码
def twilio_send_test_message(number,vcard_url):
client = get_twilio_client()
message = client.messages.create(
body=f'example message with vCard',from_= number,media_url=[vcard_url],to='+1USPHONENUMBER'
)
return message
_b64 函数
def _b64_image(filename):
with open(filename,'rb') as f:
b64 = base64.b64encode(f.read())
final = b64.decode('utf-8')
return final
当注释掉照片行时,vCard 发送得很好,但有了它,它就不起作用了。
我还通过在本地将其写出到 .vcf 来发短信,如果保存在本地,它可以很好地处理图像。
我明显做错了吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)