Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java开发服务器(devserver)的Google应用程序引擎任务队列REST API_Java_Google App Engine_Google Api Java Client_Task Queue - Fatal编程技术网

Java开发服务器(devserver)的Google应用程序引擎任务队列REST API

Java开发服务器(devserver)的Google应用程序引擎任务队列REST API,java,google-app-engine,google-api-java-client,task-queue,Java,Google App Engine,Google Api Java Client,Task Queue,我在本地机器上的Java开发服务器(又名devserver)上运行了一个GAE应用程序,它定义了一些任务队列拉队列 我想使用运行在我的机器上的另一个独立Java应用程序中的TaskQueueRESTAPI来访问这些拉队列 我尝试了谷歌提出的实施租赁任务的建议。显然,它使用了需要client_secrets.json文件格式的 { "installed": { "client_id": "retrieved from creating a Service Account for the

我在本地机器上的Java开发服务器(又名devserver)上运行了一个GAE应用程序,它定义了一些任务队列拉队列

我想使用运行在我的机器上的另一个独立Java应用程序中的TaskQueueRESTAPI来访问这些拉队列

我尝试了谷歌提出的实施租赁任务的建议。显然,它使用了需要
client_secrets.json
文件格式的

{
  "installed": {
    "client_id": "retrieved from creating a Service Account for the project",
    "client_secret": "supposedly appears in the JSON file that's downloaded upon creation of a Service Account for the project"
  }
}
我为该项目创建了一个服务帐户,并自动下载了一个JSON,格式如下:

{
  "type": "service_account",
  "project_id": "myProjectId",
  "private_key_id": "some long hexadecimal",
  "private_key": "an even longer encrypted stuff",
  "client_email": "myServiceAccountName@myProjectId.iam.gserviceaccount.com",
  "client_id": "a decimal number",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/myServiceAccountName%40myProjectId.iam.gserviceaccount.com"
}
在我的
client\u secrets.json
文件中,我使用
private\u key\u id
作为
client\u secret
值并执行示例代码

结果是它打开了
https://accounts.google.com/o/oauth2/auth
在我的浏览器中,它显示了一个错误,状态代码为
400
,并显示以下消息:

错误:重定向\u uri\u不匹配应用程序:我的应用程序被重定向 请求中的URI:与 注册的重定向URI

我尝试了
Taskqueue.Builder.setRootUrl(“http://localhost:8080”
,尽管它的javadoc说不要弄乱它。它返回了未经授权的
401

  • 有没有一种方法可以使用独立Java应用程序中的任务队列RESTAPI来访问这些拉队列?我更喜欢使用Google提供的Java库,但显然它们会自动指向实际的GAE服务
  • 当我想从云上的Google App Engine租赁任务时,我应该在
    client\u secrets.json
    文件中使用什么作为
    client\u secret
    1的值

  • 1当我创建服务帐户时,由于我不是项目的所有者,我收到以下消息:

    无法将服务帐户添加到此项目的权限 因为你不是项目的所有者。提供服务 帐户访问此项目,请要求项目所有者将其添加到 项目权限

    我想知道这是否与自动下载的JSON中缺少
    client\u secret
    属性有关

  • 我不认为dev服务器会公开任务队列API,而是针对您创建的单独测试项目进行测试

  • 您可以使用服务帐户中的JSON连接到任务队列API,请参阅文档

    GoogleCredential credential=GoogleCredential.fromStream(新文件输入流(“MyProject-1234.json”)) .createScope(Collections.singleton(“”)

    Taskqueue Taskqueue=新建Taskqueue.Builder( httpTransport,JSON_工厂,凭证).setApplicationName(应用程序_名称) .setTaskqueueRequestInitializer(新的TaskqueueRequestInitializer(){ @凌驾 public void initializeTaskqueueRequest(TaskqueueRequest请求){ 请求。setPrettyPrint(真); } }).build()

    //获取队列

    com.google.api.services.taskqueue.model.taskqueue queue=getQueue(taskqueue); System.out.println(队列)

    //租用、执行和删除任务

    任务任务=getLeasedTasks(任务队列)


  • 魔兽世界6小时3视图,没有太多人使用任务队列REST API。。。难怪,如果您不能在本地机器上轻松地使用它进行开发。