@Override
protected List<String> doInBackground(Void... params)
{
try
{
//This line below is the cause of the insufficient permissions error
ListMessagesResponse messagesWithLabels = mService.users().messages().list("me").setQ("label:inbox").execute();
/*for(Message m : messagesWithLabels.getMessages())
{
if(m.size() > MAXSIZE)
{
List<MessagePartHeader> headers = m.getPayload().getHeaders();
for (MessagePartHeader header : headers)
{
if (header.getName().equals("From") || header.getName().equals("Date")
|| header.getName().equals("Subject") || header.getName().equals("To")
|| header.getName().equals("CC")) {
messageDetails.put(header.getName().toLowerCase(), header.getValue());
}
}
messageDetails.put("snippet", m.getSnippet());
messageDetails.put("threadId", m.getThreadId());
messageDetails.put("id", m.getId());
messageDetails.put("body",m.getPayload().getBody().getData());
GmailFunctions.deleteThread(mService, "me", m.getId());
messageDetails.clear();
}
}*/
return getDataFromApi();
}
catch (Exception e)
{
mLastError = e;
cancel(true);
return null;
}
}
402の原因となっている行にマークがあります。権限のドメインが不十分です:グローバルエラーです。私が上記の行をコメントアウトすると、プログラムはラベルを返して、アクセス権エラーなしで画面に表示します。私はリリースapkに署名し、Google Playデベロッパーコンソールを設定しました。このアプリケーションはSHA1の署名だけで、資格情報を取得するサンプルアプリケーションに従っています。Gmail API 403権限が不十分ですドメインドメイン
https://developers.google.com/gmail/api/quickstart/java
不十分なアクセス許可について何を行うには?
ありがとうございます。
mserviceの作成:
private class MakeRequestTask extends AsyncTask< Void, Void, List<String> > {
private com.google.api.services.gmail.Gmail mService = null;
private Exception mLastError = null;
ArrayList<String> sRemovalIds = new ArrayList<String>();
List<String> inserts = new ArrayList<String>();
Map<String, Object> messageDetails = new HashMap<String, Object>();
public MakeRequestTask(GoogleAccountCredential credential)
{
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
mService = new com.google.api.services.gmail.Gmail.Builder(
transport, jsonFactory, credential)
.setApplicationName("Gmail API Android Quickstart")
.build();
}
@Override
protected List<String> doInBackground(Void... params)
{
try
{
ListMessagesResponse messagesWithLabels = mService.users().messages().list("me").setQ("label:inbox").execute();
/*for(Message m : messagesWithLabels.getMessages())
{
if(m.size() > MAXSIZE)
にあります。 'mService'をインスタンス化するコードを表示できますか?あなたの許可の問題があるかもしれません。 – Tholle
サンプルからのボイラープレートは非常に高いです。私はそのスニペットを追加しました。尋ねていただきありがとうございます。 – Giuseppe
私はJavaクライアントライブラリを一度も使用していないので、わかりません。誰かが答えるまで、あなたは[Oauth Playground](https://developers.google.com/oauthplayground/)で定期的な 'http-requests'であなたのリクエストを試みることができます。必要。 – Tholle