2012-01-19 21 views
1

Oauth 2.0を使用してGmailで受信トレイを読む際に問題があります。私は自分のスコープとしてこれを使用しています:https://mail.google.com/mail/feed/atom/権限のないユーザー401 Oauth 2.0 google

は、これは私の非稼働コード

$fields=array(
    'code'=> urlencode($authcode), 
    'client_id'=> urlencode($clientid), 
    'client_secret'=> urlencode($clientsecret), 
    'redirect_uri'=> urlencode($redirecturi), 
    'grant_type'=> urlencode('authorization_code') 
); 

$fields_string=''; 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
$fields_string=rtrim($fields_string,'&'); 

$ch = curl_init(); 

curl_setopt($ch,CURLOPT_URL,'https://accounts.google.com/o/oauth2/token'); 
curl_setopt($ch,CURLOPT_POST,5); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$result = curl_exec($ch); 
curl_close($ch); 

$response= json_decode($result); 
$accesstoken= $response->access_token; 

$xmlresponse= file_get_contents('https://mail.google.com/mail/feed/atom/?oauth_token='.$accesstoken); 

である私も、私のアクセストークンが、まだ運を取得し、無許可に401エラーが発生します。

+0

私は同じ問題を抱えています。あなたが解決策を得たら。ここに投稿してください。 – Asghar

答えて

1

https://mail.google.com/mail/feed/atom/は、フィードを取得できるサーバーエンドポイントではありません。 docを参照してください。ここでは作業コードは、私がOAuthのを使ってフィードを取得するためにOAuth2.0を使用してこれを行う、あるいはその可能ならばするかどうかはわからないVb.net

<?php 
    $mailbox = imap_open("{imap.googlemail.com:993/ssl}INBOX", "[email protected]", "PASSWORD"); 
    $mail = imap_search($mailbox, "ALL"); 
    $mail_headers = imap_headerinfo($mailbox, $mail[0]); 
    $subject = $mail_headers->subject; 
    $from = $mail_headers->fromaddress; 
    imap_setflag_full($mailbox, $mail[0], "\\Seen \\Flagged"); 
    imap_close($mailbox); 
?> 

PHPおよびクライアントログインを使用して

objClient.Credentials = New System.Net.NetworkCredential(username, password) 
Dim nodelist As XmlNodeList 
Dim node As XmlNode 
Dim response As String 
Dim xmlDoc As New XmlDocument 

'get emails from gmail 
response = Encoding.UTF8.GetString(objClient.DownloadData("https://mail.google.com/mail/feed/atom")) 
response = response.Replace("<feed version=""0.3"" xmlns=""http://purl.org/atom/ns#"">", "<feed>") 

'Get the number of unread emails 
xmlDoc.LoadXml(response) 
node = xmlDoc.SelectSingleNode("/feed/fullcount") 
mailCount = node.InnerText 
nodelist = xmlDoc.SelectNodes("/feed/entry") 
node = xmlDoc.SelectSingleNode("title") 

であります2.0。

+0

これをPHPで行うことはできますか? –

+0

答えを編集しました。 OAuth2.0を使用して受信トレイフィードを取得できるかどうかはわかりません。 – Shadow

+0

ありがとうございます。未来のためのいい言及。 –

関連する問題