【发布时间】:2013-07-22 11:25:38
【问题描述】:
我正在使用此代码获取 Google 任务 Api 的身份验证
import com.google.api.client.http.*;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.services.tasks.*;
import com.google.api.client.auth.oauth.OAuthHmacSigner;
import com.google.api.client.util.ArrayMap;
import com.google.api.client.auth.oauth.OAuthParameters;
import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists;
import java.io.IOException;
import java.util.List;
public class GoogleConnection {
public static Tasks setup() throws Exception {
com.google.api.services.tasks.Tasks tasks = null;
HttpRequestFactory httpRequestFactory = null;
HttpRequestInitializer httpRequestInitializer = null;
OAuthHmacSigner signer = new OAuthHmacSigner();
HttpTransport httpTransport = new NetHttpTransport();
OAuthParameters oauthParameters = new OAuthParameters();
final ArrayMap<String, Object> customKeys = new ArrayMap<String, Object>();
customKeys.add("xoauth_requestor_id", "test.2@elmetni.mygbiz.com");
signer.clientSharedSecret = "rdFB-_j_ysHBs51IpU_IWeWL";
oauthParameters.version = "2.0";
oauthParameters.consumerKey = "elmetni.mygbiz.com";
oauthParameters.signer = signer;
HttpRequestFactory requestFactory = httpTransport.createRequestFactory(oauthParameters);
httpRequestInitializer = requestFactory.getInitializer();
tasks = new com.google.api.services.tasks.Tasks.Builder(httpTransport, new JacksonFactory(), httpRequestInitializer)
.setTasksRequestInitializer(new TasksRequestInitializer() {
@Override
public void initializeTasksRequest(TasksRequest<?> request) throws IOException {
@SuppressWarnings("rawtypes")
TasksRequest tasksRequest = (TasksRequest) request;
tasksRequest.setUnknownKeys(customKeys);
tasksRequest.setKey("AIzaSyCXedjBax4jxVQ146eSN1FU95iiUzEzeeM");
}
})
.setApplicationName("first")
.build();
return tasks;
}
public static List<com.google.api.services.tasks.model.Task> getTasksFromTaskList(String taskListId) throws Exception {
com.google.api.services.tasks.Tasks tasksService = GoogleConnection.setup();
com.google.api.services.tasks.model.Tasks result = tasksService .tasks().list(taskListId).execute();
return result.getItems();
}
public static void main(String[] args) throws IOException, Exception {
getTasksFromTaskList("herewego");
}
}
我一直在犯这个错误:
线程“主”com.google.api.client.googleapis.json.GoogleJsonResponseException 中的异常:401 Unauthorized { “代码”:401, “错误”:[{ “域”:“全球”, “位置”:“授权”, “位置类型”:“标题”, “消息”:“无效的凭据”, “原因”:“authError” }], “消息”:“无效凭据” }
在:com.google.api.services.tasks.model.Tasks 结果 = tasksService .tasks().list(taskListId).execute();
有人能告诉我这有什么问题吗?
【问题讨论】:
标签: java authentication oauth google-api google-api-java-client