Gmail 用の Chrome 拡張機能を構築し、自分宛てのメールのみを取得しようとしています。このページの下部にある gapi スレッド API Explorer を使用してテストします。下の画像の下部にあるように、受信トレイのみのアイテムが期待どおりに返されます。上記の API Explorer からリクエスト URL をコピーして
https://www.googleapis.com/gmail/v1/users/me/threads?=to%3Adan%40pledgmail.com+in%3Ainbox&access_token= + thisToken
、以下の background.js コードに貼り付けましたが、受信したメールに加えて送信したメールが返されます。
注: リクエスト URL の「キー」を API Explorer から「access_token」に変更します。そうしないと、リクエストが機能しません。
(私のコードがそれを与えない場合、私は初心者です。どんな助けも心から感謝しており、あなたの時間に感謝しています。)
Google API Explorerの結果 (予想)
リクエスト URL をコピーした background.js からの私のコード
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
thisToken = token
chrome.runtime.onMessage.addListener(
function(request,sender,sendResponse){
var gapiRequestAllThreadsToSelf = "https://www.googleapis.com/gmail/v1/users/me/threads?=to%3Adan%40pledgmail.com+in%3Ainbox&access_token=" + thisToken
var getAllThreadsToSelf = function (gapiRequestURL)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", gapiRequestURL, false );
xmlHttp.send( null );
return xmlHttp.responseText;
}
var threadsToSelf = getAllThreadsToSelf(gapiRequestAllThreadsToSelf)
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {data: threadsToSelf}, function(response) {
});
});
}
);
});
}
})
6 通ではなく 9 通の予期しないメールが返されます (上位 3 通は私が送信したメールです)
{
"threads": [
{
"id": "14e69c9075bd53",
"snippet": "Thank you!",
"historyId": "8573"
},
{
"id": "14e69be815c6a0",
"snippet": "Thaaaanks",
"historyId": "8550"
},
{
"id": "14e644211d19b0",
"snippet": "Reply to this email, Danny boy",
"historyId": "8481"
},
{
"id": "14e1c4702de573",
"snippet": "Hey guys, Here is the gmail Chrome extension I am working on. This is the basic mvp I'm iterating",
"historyId": "8328"
},
{
"id": "14e13259f00f0e",
"snippet": "Hello Daniel Klos, Thanks for buying from Chrome Web Store using Google Wallet! Chrome Web Store will",
"historyId": "8431"
},
{
"id": "14e12da5ca9c16",
"snippet": "Here are your account details. Sign in » Your billing setup is complete. See your account details",
"historyId": "6181"
},
{
"id": "14e12d1e3e41ba",
"snippet": "Hi Dan Welcome to your Gmail inbox Save everything With up to 30GB of space, you'll never need to",
"historyId": "2678"
},
{
"id": "14e12d1e1be7b3",
"snippet": "Hi Dan Get the official Gmail app The best features of Gmail are only available on your phone and",
"historyId": "6114"
},
{
"id": "14e12d1e19e865",
"snippet": "Hi Dan Work smarter with Gmail and Google Apps Manage Calendar meetings Google Calendar makes",
"historyId": "2682"
}
],
"resultSizeEstimate": 9
}
適切な測定のための私のmanifest.json
{
"manifest_version": 2,
"key": "redacted",
"name": "redacted",
"description": "Description",
"version": "0.0.2.0",
"default locale": "en",
"icons": { "128": "imgs/pledge_pin.png"},
"content_scripts" : [
{
"matches": ["*://mail.google.com/mail/*"],
"js": ["js/jquery.js", "js/compose.js", "bower_components/jqnotifybar/jquery.notifyBar.js"],
"css": ["css/stylesheet.css", "bower_components/jqnotifybar/css/jquery.notifyBar.css"]
}
],
"background": {
"scripts": ["scripts/background.js"]
},
"permissions": [
"identity"
],
"oauth2": {
"client_id": "redacted",
"scopes": ["https://www.googleapis.com/auth/gmail.modify"]
}
}