Getmail.php
<?php $headers = array( "Authorization: Bearer {APIから取得したトークン}" ); $url = "https://www.googleapis.com/gmail/v1/users/me/messages/" . $argv[1]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); $html = curl_exec($ch); $html = mb_convert_encoding($html,"UTF-8","EUC-JP"); print_r($html); curl_close($ch); ?>
引数無しで実行するとメールボックスの各メールのID一覧を取得し、引数にIDを入れるとそのメールのjson形式での情報を取得することができます。
ID一覧の記述はこのようになっています。
{ "messages": [ { "id": "********", "threadId": "********" }, { "id": "********", "threadId": "********" }, ・ ・ ・ { "id": "*********", "threadId": "*********" } ], "nextPageToken": "********", "resultSizeEstimate": ******** }
これをテキストにし、処理しやすいようにPHPの配列に直します。
$json_string = file_get_contents(MAIL_ID_LIST); $json = json_decode($json_string);
僕の場合、Subjectを取ってくるところまでで一旦目標にしていましたので、先程のGetmail.phpを関数に入れて、
function GetSubject($id){ $output = GetMail($id); $json_out = json_decode($output); $result = $json_out->payload->headers; echo "$result->value\n"; foreach($result as $key => $value){ if(strpos($value->name, "Subject") !== false){ echo "ここがSubjectです"; } } }
というふうにまとまりました(まとまってない) まだ改良を続けると思います。