Sample code for 30+ languages & platforms
Lua

Google People API - Create Contact

See more Google People Examples

Create a new contact.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- 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

local jsonToken = chilkat.JsonObject.new()
local success = jsonToken:load_file("qa_data/tokens/googlePeople.json")
if not success then
    print("Failed to load googleContacts.json")
    return
end

local http = chilkat.Http.new()

http.auth_token = jsonToken:string_of("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"
--     }
--   ]
-- }

local json = chilkat.JsonObject.new()
json:update_string("names[0].givenName", "John")
json:update_string("names[0].familyName", "Doe")

local resp = chilkat.HttpResponse.new()
success = http:http_json("POST", "https://people.googleapis.com/v1/people:createContact", json, "application/json", resp)
if not success then
    print(http.last_error_text)
    return
end

local sbResponseBody = chilkat.StringBuilder.new()
resp:get_body_sb(sbResponseBody)
local jResp = chilkat.JsonObject.new()
jResp:load_sb(sbResponseBody)
jResp.emit_compact = false

print("Response Body:")
print(jResp:emit())

local respStatusCode = resp.status_code
print("Response Status Code = " .. respStatusCode)
if respStatusCode >= 400 then
    print("Response Header:")
    print(resp.header)
    print("Failed.")
    return
end

-- 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 v_type = ""
local id = ""
local updateTime = ""
local metadataPrimary = false
local metadataSourceType = ""
local metadataSourceId = ""
local displayName = ""
local familyName = ""
local givenName = ""
local displayNameLastFirst = ""
local unstructuredName = ""
local url = ""
local default = false
local contactGroupMembershipContactGroupId = ""
local contactGroupMembershipContactGroupResourceName = ""

local resourceName = jResp:string_of("resourceName")
local etag = jResp:string_of("etag")
local metadataObjectType = jResp:string_of("metadata.objectType")
local i = 0
local count_i = jResp:size_of_array("metadata.sources")
while i < count_i do
    jResp.i = i
    v_type = jResp:string_of("metadata.sources[i].type")
    id = jResp:string_of("metadata.sources[i].id")
    etag = jResp:string_of("metadata.sources[i].etag")
    updateTime = jResp:string_of("metadata.sources[i].updateTime")
    i = i + 1
end

i = 0
count_i = jResp:size_of_array("names")
while i < count_i do
    jResp.i = i
    metadataPrimary = jResp:bool_of("names[i].metadata.primary")
    metadataSourceType = jResp:string_of("names[i].metadata.source.type")
    metadataSourceId = jResp:string_of("names[i].metadata.source.id")
    displayName = jResp:string_of("names[i].displayName")
    familyName = jResp:string_of("names[i].familyName")
    givenName = jResp:string_of("names[i].givenName")
    displayNameLastFirst = jResp:string_of("names[i].displayNameLastFirst")
    unstructuredName = jResp:string_of("names[i].unstructuredName")
    i = i + 1
end

i = 0
count_i = jResp:size_of_array("photos")
while i < count_i do
    jResp.i = i
    metadataPrimary = jResp:bool_of("photos[i].metadata.primary")
    metadataSourceType = jResp:string_of("photos[i].metadata.source.type")
    metadataSourceId = jResp:string_of("photos[i].metadata.source.id")
    url = jResp:string_of("photos[i].url")
    default = jResp:bool_of("photos[i].default")
    i = i + 1
end

i = 0
count_i = jResp:size_of_array("memberships")
while i < count_i do
    jResp.i = i
    metadataSourceType = jResp:string_of("memberships[i].metadata.source.type")
    metadataSourceId = jResp:string_of("memberships[i].metadata.source.id")
    contactGroupMembershipContactGroupId = jResp:string_of("memberships[i].contactGroupMembership.contactGroupId")
    contactGroupMembershipContactGroupResourceName = jResp:string_of("memberships[i].contactGroupMembership.contactGroupResourceName")
    i = i + 1
end