Twilio - отправка vCard не отображается должным образом
Я пытаюсь отправить карточку контакта (.vcf) через Twilio (php) и не могу заставить vcf правильно отображаться.
.Vcf отлично сохраняется на моем сервере, и если я впоследствии загружу файл с сервера и открою его в iMessage на моем iPhone или Mac, он будет отображаться нормально. Но при отправке через Twilio все, что я вижу, - это содержимое .vcf в виде обычного текста.
Вот код, который я использую:
$account_sid = 'xxxxxxxx';
$auth_token = 'xxxxxxxx';
$client = new Services_Twilio($account_sid, $auth_token);
header('content-type: text/vcard');
header('content-disposition: inline; filename= "testing2.vcf"');
try {
$vCard = "BEGIN:VCARD\r";
$vCard .= "VERSION:4.0\r";
$vCard .= "N:Gump;Forrest;;Mr.;\r";
$vCard .= "FN:Forrest Gump\r";
$vCard .= "ORG:Bubba Gump Shrimp Co.\r";
$vCard .= "TITLE:Shrimp Man\r";
$vCard .= "PHOTO;MEDIATYPE=image/gif:http://www.example.com/dir_photos/my_photo.gif\r";
$vCard .= "TEL;TYPE=work,voice;VALUE=uri:tel:+1-111-555-1212\r";
$vCard .= "TEL;TYPE=home,voice;VALUE=uri:tel:+1-404-555-1212\r";
$vCard .= "EMAIL:forrestgump@example.com\r";
$vCard .= "END:VCARD";
$path = '/var/www/xxxx/xxxx/testing2.vcf';
file_put_contents($path, $vCard);
$client->account->messages->create(array(
'To' => $user_mobile,
'MediaUrl' => ['https://www.example.com/vcfs/testing2.vcf'],
'From' => "xxxxxxxxxxxx"
));
}
catch (\Services_Twilio_RestException $e) {
}
1 ответ
Убедитесь, что конечная точка, обслуживающая вашу карту vCard, устанавливает следующие заголовки:
-
Content-Type: text/vcard
, -
Cache-Control: no-cache
и -
Content-Disposition: inline; filename="filename.vcf"
См. Также этот вопрос SO: Создать VCard и отправить через Twilio