如何从Google API PHP获取电子邮件地址

时间:2017-02-07 02:25:02

标签: php gmail-api

我正在尝试弄清楚如何使用Gmail API从邮件中获取电子邮件地址,但似乎在发送数据时,实际的电子邮件地址已经脱离,仅留下此人的姓名。以下是我得到的应该有用户电子邮件地址的响应示例(格式化为PHP数组):

 Array ( [0] => Array ( [name] => To [value] => John Smith ) ) 

但是,当我在Gmail API文档页面上尝试时,我会得到这样的回复(格式化为JSON):

"headers": [
   {
    "name": "To",
    "value": "John Smith \u003cjohnsmith@test.com\u003e"
   }
  ]

现在,我不确定发生了什么,但似乎反复冲突以及它们之间的所有内容,包括我需要的电子邮件地址,在我有机会获得它之前就被转义了。有没有办法避免这种情况,以便我可以从响应中获取电子邮件地址?这是我现在使用的当前代码:

require_once __DIR__ . '/google-api-php-client/src/Google/autoload.php';



$client_email = "myclientemail";
$private_key = file_get_contents('myprivatekey');
$scopes = array('https://www.googleapis.com/auth/gmail.modify');
$userId = 'myuserid';
$credentials = new Google_Auth_AssertionCredentials(
    $client_email,
    $scopes,
    $private_key,
    'notasecret',                                 // Default P12 password
    'http://oauth.net/grant_type/jwt/1.0/bearer', // Default grant type
    $userId
);
$client = new Google_Client();
$client->setAssertionCredentials($credentials);
if ($client->getAuth()->isAccessTokenExpired()) {
  $client->getAuth()->refreshTokenWithAssertion();
}
$service = new Google_Service_Gmail($client);

$opt_param = array(
    'format'=>'metadata',
    'metadataHeaders' => 'To'
  );

    $message = $service->users_messages->get($userId, "messageid", $opt_param);
print_r($message);

0 个答案:

没有答案