2016-10-03 6 views
3

EDIT:最初のエラーが修正されました。メッセージIDのリストを表示し、受信トレイから完全な電子メールを表示する方法を試してみましょう。GMail API - 受信トレイから完全なメールを表示するには

GmailのAPIを使用して自分の受信トレイにあるメールを呼び出して、自分のアプリで使用できるようにしようとしています。すべてのアクセスがソートされていて、現在配列が返されています。私が遭遇する問題は、メッセージを表示しようとしています。 @Tholleが提案されたものに追加

<?php 
ini_set('display_errors' , 'On'); 
error_reporting(E_ALL); 

// Start Session 
session_start(); 

//Include API autoloader 
require_once __DIR__ . '/vendor/autoload.php'; 

// Create Google Client 
$client = new Google_Client(); 
$client->setClientId('ID in here'); 
$client->setClientSecret('Secret here'); 
$client->setRedirectUri('http://localhost:8888/gmail/'); 
$client->addScope('https://mail.google.com/'); 

//Create Google Service 
$service = new Google_Service_Gmail($client); 

if(isset($_REQUEST['logout'])){ 
    unset($_SESSION['access_token']); 
} 

// Check if there is an auth token 
if(isset($_GET['code'])) 
{ 
    $client->authenticate($_GET['code']); 
    $_SESSION['access_token'] = $client->getAccessToken(); 
    $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
    header('Location: ' . filter_var($url, FILTER_VALIDATE_URL)); 
} 

// Check for access token in session 
if(isset($_SESSION['access_token'])) 
{ 
    $client->setAccessToken($_SESSION['access_token']); 
} else 
{ 
    $loginUrl = $client->createAuthUrl(); 
    echo 'Click <a href="' . $loginUrl . '">here</a> to login'; 
} 

// Check if we have an access token ready for API Call 
try 
{ 
    if(isset($_SESSION['access_token']) && $client->getAccessToken()) 
    { 
     //make API calls 
     $messages = $service->users_messages->listUsersMessages('me',['maxResults'=> 2, 'labelIds'=> 'INBOX']); 

     foreach ($messages as $message) 
     { 
      print 'Message with ID: ' . $message->getId() . '<br/>'; 
     } 

     return $messages; 
    } 
} 
catch (Google_Auth_Exception $e) 
{ 
    echo 'Looks like you dont have an access token or its expired'; 
} 
+0

あなたはメッセージを一覧表示する必要がありますが、あなたは[** get **]に別の要求をしなければなりませんhttps://developers.google.com/gmail/api/v1/reference/users/messages/get#try-it)でもメッセージの内容を確認できます。 [**この回答**](http://stackoverflow.com/questions/32655874/cannot-get-the-body-of-email-with-gmail-php-api/32660892#32660892)が役に立ちます。 – Tholle

答えて

0

を次のように

私のPHPが見え、messagesのリストは、メッセージの送信者を示すためにFrom属性を持つヘッダを持つことになります。 foreach messagesの中に新しいループを追加するか、具体的にpayload[x].header.Fromと呼ぶだけです。

関連する問題