Twilio не отправляет vCard с фотографией
Я создаю свою vCard с модулем vObjects, используя следующее:
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 = 'info@EX.com'
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 локально, и он отлично работает с изображением, если оно сохранено локально.
Я что-то явно не так делаю?