使用Delphi更新Google通讯录

时间:2016-07-05 14:23:27

标签: rest delphi google-api delphi-xe7

我正在尝试通过 Delphi XE7 中的Google Contacts API version 3.0更新 Google通讯录。我自定义了http://docwiki.embarcadero.com/CodeExamples/XE7/en/RESTDemo_Sample中提供的RESTDemo示例。

说明(在Google通讯录API中):

  

要更新联系人,请先检索联系人条目,然后修改数据   并向该联系人的编辑URL发送授权的PUT请求   修改了身体中的接触入口。

我可以检索代码,但无法发送 PUT请求。代码如下:

function TdmMain.UpdateName(sId, sName: string): string;
begin
    ResetRESTComponentsToDefaults;
    RESTClient.BaseURL := 'https://www.google.com/m8/feeds/contacts/default/full/' + sId + '/';
    RESTClient.Authenticator := OAuth2_GoogleContacts;
    RESTRequest.Execute;
    Result := Content;

    Content := AnsiReplaceStr(Content, '<title type="text"/>', '<title type="text">' + sName + '</title>');

// I don't know if I should repeat that, but I tried. Still, doesn't work
//    ResetRESTComponentsToDefaults;
//    RESTClient.BaseURL := 'https://www.google.com/m8/feeds/contacts/default/full/' + sId + '/';
//    RESTClient.Authenticator := OAuth2_GoogleContacts;
    RESTRequest.ClearBody;
    RESTRequest.AddBody(Content, ctTEXT_XML);
    RESTRequest.Method := rmPOST;
    RESTRequest.Execute;
    Result := Content;
end;

我每次都收到以下消息:

> <html><head><meta http-equiv="Content-Type" content="text/html;
> charset=utf-8"> <title>Error 401 (Client Error)!!1</title> <style
> type="text/css"> ...

有没有人知道如何在Delphi中提出正确的PUT请求?

0 个答案:

没有答案