AutoIt
AutoIt
Google People API - Create Contact
See more Google People Examples
Create a new contact.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; It is assumed we previously obtained an OAuth2 access token.
; This example loads the JSON access token file
; originally obtained by this example: Get Google People API OAuth2 Access Token
; or refreshed by this example: Refresh Google People API OAuth2 Access Token
$oJsonToken = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJsonToken.LoadFile("qa_data/tokens/googlePeople.json")
If ($bSuccess <> True) Then
ConsoleWrite("Failed to load googleContacts.json" & @CRLF)
Exit
EndIf
$oHttp = ObjCreate("Chilkat.Http")
$oHttp.AuthToken = $oJsonToken.StringOf("access_token")
; Implements the following CURL command:
; curl -H "Content-Type: application/json" -X POST
; -d '{
; "names": [{ "givenName": "John", "familyName": "Doe" }]
; }'
; https://people.googleapis.com/v1/people:createContact
; Use the following online tool to generate HTTP code from a CURL command
; Convert a cURL Command to HTTP Source Code
; Use this online tool to generate code from sample JSON:
; Generate Code to Create JSON
; The following JSON is sent in the request body.
; {
; "names": [
; {
; "givenName": "John",
; "familyName": "Doe"
; }
; ]
; }
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("names[0].givenName","John")
$oJson.UpdateString("names[0].familyName","Doe")
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpJson("POST","https://people.googleapis.com/v1/people:createContact",$oJson,"application/json",$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
$oSbResponseBody = ObjCreate("Chilkat.StringBuilder")
$oResp.GetBodySb($oSbResponseBody)
$oJResp = ObjCreate("Chilkat.JsonObject")
$oJResp.LoadSb($oSbResponseBody)
$oJResp.EmitCompact = False
ConsoleWrite("Response Body:" & @CRLF)
ConsoleWrite($oJResp.Emit() & @CRLF)
Local $iRespStatusCode = $oResp.StatusCode
ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode >= 400) Then
ConsoleWrite("Response Header:" & @CRLF)
ConsoleWrite($oResp.Header & @CRLF)
ConsoleWrite("Failed." & @CRLF)
Exit
EndIf
; Sample JSON response:
; (Sample code for parsing the JSON response is shown below)
; {
; "resourceName": "people/c172365763025317520",
; "etag": "%EigBAj0DBAUGBwgJPgoLPwwNDg8QQBESExQVFhc1GTQ3HyEiIyQlJicuGgQBAgUHIgxleVowR3U1SFZhcz0=",
; "metadata": {
; "sources": [
; {
; "type": "CONTACT",
; "id": "2645dbf8c902e90",
; "etag": "#eyZ0Gu5HVas=",
; "updateTime": "2020-08-03T22:46:03.410Z"
; }
; ],
; "objectType": "PERSON"
; },
; "names": [
; {
; "metadata": {
; "primary": true,
; "source": {
; "type": "CONTACT",
; "id": "2645dbf8c902e90"
; }
; },
; "displayName": "John Doe",
; "familyName": "Doe",
; "givenName": "John",
; "displayNameLastFirst": "Doe, John",
; "unstructuredName": "John Doe"
; }
; ],
; "photos": [
; {
; "metadata": {
; "primary": true,
; "source": {
; "type": "CONTACT",
; "id": "2645dbf8c902e90"
; }
; },
; "url": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/V8BNOaftJmYG2hHugNzYued7G9QFdbZOACLcDEAEiGQoBShD___________8BGNuwiP7______wE/s100/photo.jpg",
; "default": true
; }
; ],
; "memberships": [
; {
; "metadata": {
; "source": {
; "type": "CONTACT",
; "id": "2645dbf8c902e90"
; }
; },
; "contactGroupMembership": {
; "contactGroupId": "myContacts",
; "contactGroupResourceName": "contactGroups/myContacts"
; }
; }
; ]
; }
; Sample code for parsing the JSON response...
; Use the following online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
Local $sV_type
Local $sId
Local $sUpdateTime
Local $bMetadataPrimary
Local $sMetadataSourceType
Local $sMetadataSourceId
Local $sDisplayName
Local $sFamilyName
Local $sGivenName
Local $sDisplayNameLastFirst
Local $sUnstructuredName
Local $sUrl
Local $bDefault
Local $sContactGroupMembershipContactGroupId
Local $sContactGroupMembershipContactGroupResourceName
Local $sResourceName = $oJResp.StringOf("resourceName")
Local $sEtag = $oJResp.StringOf("etag")
Local $sMetadataObjectType = $oJResp.StringOf("metadata.objectType")
Local $i = 0
Local $iCount_i = $oJResp.SizeOfArray("metadata.sources")
While $i < $iCount_i
$oJResp.I = $i
$sV_type = $oJResp.StringOf("metadata.sources[i].type")
$sId = $oJResp.StringOf("metadata.sources[i].id")
$sEtag = $oJResp.StringOf("metadata.sources[i].etag")
$sUpdateTime = $oJResp.StringOf("metadata.sources[i].updateTime")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJResp.SizeOfArray("names")
While $i < $iCount_i
$oJResp.I = $i
$bMetadataPrimary = $oJResp.BoolOf("names[i].metadata.primary")
$sMetadataSourceType = $oJResp.StringOf("names[i].metadata.source.type")
$sMetadataSourceId = $oJResp.StringOf("names[i].metadata.source.id")
$sDisplayName = $oJResp.StringOf("names[i].displayName")
$sFamilyName = $oJResp.StringOf("names[i].familyName")
$sGivenName = $oJResp.StringOf("names[i].givenName")
$sDisplayNameLastFirst = $oJResp.StringOf("names[i].displayNameLastFirst")
$sUnstructuredName = $oJResp.StringOf("names[i].unstructuredName")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJResp.SizeOfArray("photos")
While $i < $iCount_i
$oJResp.I = $i
$bMetadataPrimary = $oJResp.BoolOf("photos[i].metadata.primary")
$sMetadataSourceType = $oJResp.StringOf("photos[i].metadata.source.type")
$sMetadataSourceId = $oJResp.StringOf("photos[i].metadata.source.id")
$sUrl = $oJResp.StringOf("photos[i].url")
$bDefault = $oJResp.BoolOf("photos[i].default")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJResp.SizeOfArray("memberships")
While $i < $iCount_i
$oJResp.I = $i
$sMetadataSourceType = $oJResp.StringOf("memberships[i].metadata.source.type")
$sMetadataSourceId = $oJResp.StringOf("memberships[i].metadata.source.id")
$sContactGroupMembershipContactGroupId = $oJResp.StringOf("memberships[i].contactGroupMembership.contactGroupId")
$sContactGroupMembershipContactGroupResourceName = $oJResp.StringOf("memberships[i].contactGroupMembership.contactGroupResourceName")
$i = $i + 1
Wend