PHP-使用Google Gmail OAuth2 API列出消息
我正在创建一个基于web的邮件客户端,它支持使用Google OAuth2 API的Google帐户,登录工作正常,第一次登录时会询问Gmail的权限,但我不知道如何从用户帐户获取邮件。根据,我正在创建一个类来使用这些API,但我不知道如何使用它PHP-使用Google Gmail OAuth2 API列出消息,php,email,gmail-api,google-oauth,Php,Email,Gmail Api,Google Oauth,我正在创建一个基于web的邮件客户端,它支持使用Google OAuth2 API的Google帐户,登录工作正常,第一次登录时会询问Gmail的权限,但我不知道如何从用户帐户获取邮件。根据,我正在创建一个类来使用这些API,但我不知道如何使用它 class Gmail { /* * Get list of Messages in user's mailbox. * @param Google_Service_Gmail $service Authorized Gmail API inst
class Gmail
{
/*
* Get list of Messages in user's mailbox.
* @param Google_Service_Gmail $service Authorized Gmail API instance.
* @param string $userId User's email address. The special value 'me'
* can be used to indicate the authenticated user.
* @return array Array of Messages.
*/
function listMessages($service, $userId) {
$pageToken = NULL;
$messages = array();
$opt_param = array();
do {
try {
if ($pageToken) {
$opt_param['pageToken'] = $pageToken;
}
$messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
if ($messagesResponse->getMessages()) {
$messages = array_merge($messages, $messagesResponse->getMessages());
$pageToken = $messagesResponse->getNextPageToken();
}
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
} while ($pageToken);
foreach ($messages as $message) {
print 'Message with ID: ' . $message->getId() . '<br/>';
}
return $messages;
}
function getMessage($service, $userId, $messageId) {
try {
$message = $service->users_messages->get($userId, $messageId);
print 'Message with ID: ' . $message->getId() . ' retrieved.';
return $message;
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
}
}
但是我认为这不是正确的方法。。我必须向函数传递什么?
谢谢
编辑:我已经将添加到我的项目中
编辑:已解决,已解决,我忘记设置并调用$client,现在我的功能是:
function listMessages($userId) {
$client_id = API_CLIENT_ID;
$client_secret = API_SECRET;
$redirect_uri = API_REDIRECT_URL;
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://mail.google.com/ https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile ");
$client->setAccessType("offline");
$service = new Google_Service_Gmail($client);
$pageToken = NULL;
$messages = array();
$opt_param = array();
do {
try {
if ($pageToken) {
$opt_param['pageToken'] = $pageToken;
}
$messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
if ($messagesResponse->getMessages()) {
$messages = array_merge($messages, $messagesResponse->getMessages());
$pageToken = $messagesResponse->getNextPageToken();
}
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
} while ($pageToken);
foreach ($messages as $message) {
print 'Message with ID: ' . $message->getId() . '<br/>';
}
return $messages;
}
函数列表消息($userId){
$client\u id=API\u client\u id;
$client\u secret=API\u secret;
$redirect\u uri=API\u redirect\u URL;
$client=新的Google_客户端();
$client->setClientId($client\u id);
$client->setClientSecret($client\u secret);
$client->setRedirectUri($redirect\u uri);
$client->addScope(“https://mail.google.com/ https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile ");
$client->setAccessType(“脱机”);
$service=新的Google\u服务\u Gmail($client);
$pageToken=NULL;
$messages=array();
$opt_param=array();
做{
试一试{
如果($pageToken){
$opt_param['pageToken']=$pageToken;
}
$messagesResponse=$service->users\u messages->listUsersMessages($userId,$opt\u param);
如果($messagesResponse->getMessages()){
$messages=array_merge($messages,$messagesResponse->getMessages());
$pageToken=$messagesResponse->getNextPageToken();
}
}捕获(例外$e){
打印“出现错误:”。$e->getMessage();
}
}而($pageToken);
foreach($messages作为$message){
打印“ID为的消息”。$Message->getId()。
;
}
返回$messages;
}
function listMessages($userId) {
$client_id = API_CLIENT_ID;
$client_secret = API_SECRET;
$redirect_uri = API_REDIRECT_URL;
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://mail.google.com/ https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile ");
$client->setAccessType("offline");
$service = new Google_Service_Gmail($client);
$pageToken = NULL;
$messages = array();
$opt_param = array();
do {
try {
if ($pageToken) {
$opt_param['pageToken'] = $pageToken;
}
$messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
if ($messagesResponse->getMessages()) {
$messages = array_merge($messages, $messagesResponse->getMessages());
$pageToken = $messagesResponse->getNextPageToken();
}
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
} while ($pageToken);
foreach ($messages as $message) {
print 'Message with ID: ' . $message->getId() . '<br/>';
}
return $messages;
}