2016-08-10 3 views
1

У меня было требование отправить нарисованное письмо (Gmail) в запланированное время. Я пробовал под кодом.Gmail API PHP Client Library или api - Как отправить черновик gmail?

$access_token = 'ya29.DxswidlwadllsidVeg5B67CdpLN6QR0d1nCuQmg9GaMT9iq8-zIA8O29yR9rEMM'; 
    //the access token is subject to change every hour 
    $header = array('Content-Type: message/rfc822', "Authorization: Bearer $access_token"); 
    $to = '125699645855239833'; // this is a draft id. 
    $line = "\r\n"; 
    $raw=''; 
    $url = 'https://www.googleapis.com/upload/gmail/v1/users/me/drafts?fields=id&key=XsqwwosqldwwdssaOLwotWD6seRloXZM'; 
    $raw .= "id: $to ".$line.$line; 
    $method_type = 1; // set as post method 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($curl, CURLOPT_HEADER, 0); 

    if($header !== 0){ 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
    } 

    if($method_type == 1 or $method_type == 0){ 
    curl_setopt($curl, CURLOPT_POST, $method_type); 
    }else{ 
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE"); 
    } 

    if($data !== 0){ 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $raw); 
    } 

    $response = curl_exec($curl); 
    $json = json_decode($response, true); 
    print_r($json); 
    curl_close($curl); 

я получил результат после завитка размещения, как показано ниже

Array ([ID] => г-5083530165761240787), но проект (E-mail) не был установлен.

ответ

1

Вам необходимы два изменения в следующие Изменение 1: на линии № 3, Вам нужно заменить

Content-Type: message/rfc822 to Content-Type: application/json 

Изменение 2: на линии № 38, Вы должны заменить

$raw .= "id: $to ".$line.$line; to $raw = '{ "id": "'.$t.'" }'.$line.$line; 

Объяснить : данные должны передаваться в необработанном формате с типом контента json.

При отправке черновика вы можете отправить сообщение как есть или как с обновленным сообщением. Если вы обновляете проект контента новым сообщением, поставьте проект ресурса в тексте запроса drafts.send; указать проект проекта, который будет отправлен; и установите для поля draft.message.raw новое сообщение MIME, закодированное как строка с кодировкой base64url. Для получения дополнительной информации см. Drafts.send.

Код: https://developers.google.com/gmail/api/guides/drafts

+0

Это работает для меня. :) –

 Смежные вопросы

  • Нет связанных вопросов^_^