2014-09-10 43 views
0

我使用谷歌任務API,補丁()。任務狀態回到needsAction

此請求不起作用:

{ 
    "status": "needsAction", 
} 

但這一要求是確定的:

{ 
    "status": "needsAction", 
    "completed": null 
} 

我使用.NET,如果我這樣做

var task = new Google.Apis.Tasks.v1.Data.Task() 
{ 
    Status = "needsAction", 
    Completed = null 
}; 

那麼,他根本不理會「完成」,我得到一個錯誤。

同樣的問題: https://www.lima-city.de/thread/google-api-tasks

+2

是的,錯誤是? – CSharpie 2014-09-10 10:59:04

+0

是的。 我在Java中找到了解決方案:task.setCompleted(Data.NULL_DATE_TIME); 但C#沒有「null_date_time」值 – 2014-09-10 12:46:11

+0

同樣的問題: https://www.lima-city.de/thread/google-api-tasks – 2014-09-10 16:54:15

回答

0

你有沒有嘗試過的,而不是空DateTime.MinValue? 因爲它應該是一個DateTime類型,並且這是一個無法分配null的結構。所以通常你不應該分配它,除非你需要它或者給它分配DateTime.MinValue或DateTime.MaxValue ...

當你遇到一個錯誤時,你應該真的注意它提供的信息。這通常是解決問題的最簡單方法,通過實際瞭解errormessage告訴你什麼。

在你的情況下,但是我猜你甚至不能編譯,因爲對日期時間的空分配是非法的。

+0

我試圖使用MinValue和MaxValue。這是行不通的。 Completed是類型?DateTime。它編譯。但Google會返回一個錯誤「無效值」。 還有一個字符串字段「CompletedRaw」(RFC 3339時間戳)。我試圖使用CompletedRaw =「null」或String.Empty。但它會產生一個錯誤「格式無效」 – 2014-09-11 05:10:32

0

我沒有使用API​​ Explorer中的某些測試在 https://developers.google.com/google-apps/tasks/v1/reference/tasks/update#try-it ,我發現服務器需要的「ID」字段和「狀態」字段。

它不需要「已完成」字段,因爲'狀態'設置爲「needsAction」時,服務器上的「已完成」字段會自動刪除。

所以,你需要的是任務的原始ID。

例如(在我的樣本任務的API瀏覽器) { 「狀態」: 「needsAction」, 「ID」: 「MTQwMDY3NzIwMTg5MTk4MzczOTA6MDoxNjQzNjkwMDc5」 }

我希望這有助於

朱莉

https://groups.google.com/forum/embed/?place=forum%2Fgoogle-tasks-api&showsearch=true#!topic/google-tasks-api/Hj84P2guTyE

0

如果底層調用使用補丁語義,則當從status = completed更改爲status = needsAction時,必須在同一操作中將completed設置爲nil。這是設計。

0

使用

Google.Apis.Tasks.v1 

你必須定義;和。

C#

.Status = "needsAction"; 
.CompletedRaw = null; 
.Completed = null; 

VB。NET

.Status = "needsAction" 
.CompletedRaw = Nothing 
.Completed = Nothing