如何在Google Apps域中抓取用户的联系人?

时间:2013-04-02 22:43:37

标签: google-profiles-api

这是设置代码(我使用的是Powershell,因为它通常很方便)

$a1= Add-Type -Path "D:\Google2.1\Google.GData.Client.dll" -passthru
$a2= Add-Type -Path "D:\Google2.1\Google.GData.Apps.dll" -passthru
$a3= Add-Type -Path "D:\Google2.1\Google.GData.Contacts.dll" -passthru
$a4= Add-Type -Path "D:\Google2.1\Google.GData.Extensions.dll" -passthru

$reqSet = New-Object Google.GData.Client.RequestSettings("testApp", $config.admin, $config.password)
$reqSet.AutoPaging = $true

$contReq = New-Object Google.Contacts.ContactsRequest($reqSet)

所以,现在我尝试检索联系人:

$contReq.GetContacts()

这有效...并且给了我我的联系人(作为域超级管理员)。凉爽

$contReq.GetContacts("arbitraryuser@mydomain.com")

这给我一个像

这样的错误
 format-default : Execution of request failed: https://www.google.com/m8/feeds/contacts/arbitraryuser@mydomain.com/full

我确实附加了一个GDataLoggingRequestFactory因子来记录请求,只是表示401错误,没有详细信息。

1 个答案:

答案 0 :(得分:0)

问题开始变旧,但因为我正在开展这样的项目......

我正在使用最新的.NET client library distribution

以下是适用的PS代码示例:

$a1 = Add-Type -Path "C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Client.dll" -passthru

$a2 = Add-Type -Path "C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Contacts.dll" -passthru

$a3 = Add-Type -Path "C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Extensions.dll" -passthru

$Settings = New-Object Google.GData.Client.RequestSettings( "MyApp", "mybelovedtrashbox@gmail.com", "mypassword" )

$reqSet = New-Object Google.Contacts.ContactsRequest( $Settings )

$Contacts = $reqSet.GetContacts()
#loop version
foreach( $Contact in $Contacts.Entries ){
    $Contact.PrimaryEmail.Address
}

#selection version
$user = $Contacts.Entries |? { $_.PrimaryEmail.Address -eq "john.doe@gmail.com" }
$user.Title

希望这会有所帮助......

我正在处理允许从Outlook联系人更新我的Gmail联系人的代码,让我知道你是否需要插入... :)