Lua
Lua
Google People API - Create Contact
See more Google People Examples
Create a new contact.Chilkat Lua Downloads
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