我正在构建与Google Tasks同步的应用.作为同步的一部分,我想比较本地任务和API任务,并查看最近更改了哪一个.
Google API的每项任务都包含一个updated属性,如下所示:
2011-08-30T13:22:53.108Z
Run Code Online (Sandbox Code Playgroud)
现在我想生成一个类似的时间戳,这样每次我在我的应用程序上更新任务时它都会设置一个新updated值.要生成我使用的RFC 3339时间戳 - http://cbas.pandion.im/2009/10/generating-rfc-3339-timestamps-in.html生成如下内容:
2011-08-30T09:30:16.768-04:00
Run Code Online (Sandbox Code Playgroud)
问题是,即使本地日期较新,API日期也总是比本地日期"更大".我猜这与两者之间的不同格式有关.
以下是两个日期,顶部来自Google Tasks API(大约10分钟前),而底部日期是在一分钟前在本地生成的.当比较哪个更大时,它告诉我最重要的是.
2011-08-30T13:22:53.108Z
2011-08-30T09:41:00.735-04:00
Run Code Online (Sandbox Code Playgroud)
我的格式错了吗?我在这做错了什么?对此的任何帮助都非常感谢.
您好,Google Tasks API团队,
从几天前开始,我们已经开始"403 Forbidden"为很多用户提供服务.
你能检查一下发生了什么吗?我们的API控制台很干净,#calls方式如下.
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Serving Limit Exceeded",
"reason" : "serviceLimit"
} ],
"message" : "Serving Limit Exceeded"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145) ~[google-api-client-1.15.0-rc.jar:1.15.0-rc]
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:111) ~[google-api-client-1.15.0-rc.jar:1.15.0-rc]
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:38) ~[google-api-client-1.15.0-rc.jar:1.15.0-rc]
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312) ~[google-api-client-1.15.0-rc.jar:1.15.0-rc]
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1042) ~[google-http-client-1.15.0-rc.jar:na]
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410) ~[google-api-client-1.15.0-rc.jar:1.15.0-rc]
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) ~[google-api-client-1.15.0-rc.jar:1.15.0-rc]
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) ~[google-api-client-1.15.0-rc.jar:1.15.0-rc]
Run Code Online (Sandbox Code Playgroud) 我想知道Google Tasks API是否提供了将任务移动到其他列表的选项,或者我是否需要创建任务的副本.
移动方法似乎只允许在同一列表中移动.
我在应用程序中生成第二个令牌时遇到问题.我在手机上注册了2个账号.当我使用第一个帐户令牌生成时,但是当我选择第二个令牌时没有生成.我的代码:
accountManager.getAuthTokenByFeatures("com.google", "Manage your tasks", null, this,
Bundle.EMPTY, Bundle.EMPTY, new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> bundleAccountManagerFuture) {
try {
String token = bundleAccountManagerFuture.getResult()
.getString(AccountManager.KEY_AUTHTOKEN);
Log.e("token", token);
} catch (AuthenticatorException e) {
e.printStackTrace();
} catch (OperationCanceledException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}, null);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
android.accounts.AuthenticatorException:未知android.accounts.AccountManager.convertErrorToException(AccountManager.java:1726)android.accounts.AccountManager.access $ 400(AccountManager.java:144)android.accounts.AccountManager $ AmsTask $ Response.onError(AccountManager. java:1572)android.accounts.IAccountManagerResponse $ Stub.onTransact(IAccountManagerResponse.java:69)android.os.Binder.execTransact(Binder.java:407)dalvik.system.NativeStart.run(Native Method)
我们希望将Google Tasks API集成到我们的Grails Web应用程序中,但是我对于同步任务和防止数据冲突有很多顾虑.
在授权Google帐户中创建任务时,同步任务的最佳做法是什么.我们是否应该定期创建一个轮询这些服务的服务,或者我们是否可以通过编程方式在用户的Google帐户中启用某种Push更新,以便通知我们的Web应用程序更改?
在Google帐户中操作同一任务时,我们如何防止用户在我们的系统中编辑任务时产生的冲突?有没有可用的版本/锁定?
我想创建一个任务处理程序,该处理程序应该通过重试等处理一些任务。
但我希望这个端点只能由 google 任务中的特定队列触发?
我该怎么处理呢?最佳做法是什么?
此致
google-app-engine google-tasks google-cloud-platform google-cloud-tasks
我的特定任务的 Cloud Task Queue 仪表板如下所示:
它似乎只显示待处理的任务和出错并需要重试的任务。我怎样才能查看已完成的任务?我想要在此页面上完成任务的原因是这样我可以单击他们的日志。
从 9 月 13 日开始,Google Tasks BatchRequest 更新工作流程将在多年来保持稳定的应用程序中触发 400 错误返回“批量请求中的重复请求 ID”。我在请求中找不到任何指示重复请求 ID 的内容。有人知道怎么回事吗?谷歌改变了什么吗?
这是我在发送简单的批处理任务插入请求时收到的响应副本......
[{
"error": {
"code": 400,
"message": "Duplicate Request ID in Batch Request: ",
"errors": [
{
"message": "Duplicate Request ID in Batch Request: ",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}]
Run Code Online (Sandbox Code Playgroud)
在调查此问题时,我发现 Google 进行了更改,现在要求Content-ID每个批量请求项上都有标头。当前使用 .Net 类时未设置此标头 Google.Apis.Requests.BatchRequest。
为了解决这个问题,我能够创建一个新的 Google.Apis.Requests.BatchRequest 本地实现,并注入一个“Content-ID”标头,然后创建每个请求条目。
private static long _id = 0;
[VisibleForTestOnly]
internal static async Task<HttpContent> CreateIndividualRequest(IClientServiceRequest request)
{
HttpRequestMessage requestMessage = request.CreateRequest(false);
string …Run Code Online (Sandbox Code Playgroud) 如何在应用程序脚本中使用 Google 任务服务设置任务的截止日期?
尝试将此值设置为给定日期,但这似乎只更新本地值而不是服务器值,如 tehhowch 所建议的那样
task.due = new Date();
Run Code Online (Sandbox Code Playgroud)
你如何更新服务器?这是我尝试过的
var x = {
due: new Date()
};
Tasks.Tasks.update(x, "MDE2NzI3NTAzNjc5NTQ1ODY5MTY6MDow", task);
Run Code Online (Sandbox Code Playgroud)
但它会抛出错误
Invalid value for: Invalid format: "Tue Apr 10 20:45:26 GMT-04:00 2018"
Run Code Online (Sandbox Code Playgroud)
我使用此代码创建了此项目,以使 Google Tasks 保持最新状态:
我们正在构建与用户Google Tasks数据同步的服务,因此如果用户在GTask中添加/编辑/删除任务,那么它将在我们的服务中添加/编辑/删除.
同步存在一个很大的问题:因为我看到GTasks API不提供任何onUpdate/onChange事件监听器.我的意思是,完美的解决方案是,如果有Google Tasks API方法,可以用来设置一些在用户添加/编辑/删除任务时请求的回调URL.
但我无法在Google Tasks API中找到此类方法,因此现在只有一种非常糟糕的方式可以与Google Tasks API同步 - 请求所有用户任务并将其与服务任务进行比较.这是非常糟糕的同步方式,因为如果我们有10k用户并希望他们的任务列表同步最多1分钟,那么我们需要每分钟做出> 10k GTasks API请求:(
我希望我错了,并且有一些方法可以为用户任务设置onChange/onUpdate回调.或者可能有另一种方式来接收用户GTasks更改的实际通知(通过电子邮件等).
有人知道吗?谢谢.
我知道 Google Maps API 会向大量使用 Maps API 的网站收费。
我找不到有关任务、日历和联系人费用的类似信息。有这样的限制还是完全免费?任何人都可以指出我明确指出的地方吗?
google-calendar-api google-api google-contacts-api google-tasks
无法使用 Google Tasks API 创建重复任务
Google Calendar APIhttps://developers.google.com/calendar/v3/reference/events#resource有recurrence密钥。
"recurrence": [
string
],
Run Code Online (Sandbox Code Playgroud)
recurrence但我在 Google Tasks API 中找不到。
如何使用 Google Tasks API 创建重复任务?
google-tasks ×12
google-api ×4
android ×1
c# ×1
date ×1
grails ×1
javascript ×1
json ×1
rfc3339 ×1
sync ×1
timestamp ×1