Lua
Lua
Google People API - List the User's Contacts
See more Google People Examples
Gets a list of people in the user's contacts.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")
local sbResponseBody = chilkat.StringBuilder.new()
success = http:quick_get_sb("https://people.googleapis.com/v1/people/me/connections?personFields=names,addresses,emailAddresses", sbResponseBody)
if not success then
print(http.last_error_text)
print(sbResponseBody:get_as_string())
return
end
-- Sample JSON Response
-- Use this online tool to generate parsing code from sample JSON:
-- Generate Parsing Code from JSON
-- {
-- "connections": [
-- {
-- "resourceName": "people/c8871101035606120608",
-- "etag": "%EgkBAj0JQhBANy4aBAECBQciDERLSGdVTFNPbzNJPQ==",
-- "names": [
-- {
-- "metadata": {
-- "primary": true,
-- "source": {
-- "type": "CONTACT",
-- "id": "7b1c7b6409e718a0"
-- }
-- },
-- "displayName": "Chilkat Cloud",
-- "familyName": "Cloud",
-- "givenName": "Chilkat",
-- "displayNameLastFirst": "Cloud, Chilkat",
-- "unstructuredName": "Chilkat Cloud"
-- }
-- ],
-- "emailAddresses": [
-- {
-- "metadata": {
-- "primary": true,
-- "source": {
-- "type": "CONTACT",
-- "id": "7b1c7b6409e718a0"
-- }
-- },
-- "value": "support@***.com"
-- }
-- ]
-- },
-- {
-- "resourceName": "people/c7607335470312011517",
-- "etag": "%EgkBAj0JQhBANy4aBAECBQciDGZETUtHVTVMazI4PQ==",
-- "names": [
-- {
-- "metadata": {
-- "primary": true,
-- "source": {
-- "type": "CONTACT",
-- "id": "6992af4e0b2d36fd"
-- }
-- },
-- "displayName": "Matt Smith",
-- "familyName": "Smith",
-- "givenName": "Matt",
-- "displayNameLastFirst": "Smith, Matt",
-- "unstructuredName": "Matt Smith"
-- }
-- ],
-- "addresses": [
-- {
-- "metadata": {
-- "primary": true,
-- "source": {
-- "type": "CONTACT",
-- "id": "6992af4e0b2d36fd"
-- }
-- },
-- "formattedValue": "2222 E Foorest Ave\nWheaton, IL 60999\nUS",
-- "streetAddress": "2222 E Foorest Ave",
-- "city": "Wheaton",
-- "region": "IL",
-- "postalCode": "60999",
-- "country": "US",
-- "countryCode": "US"
-- }
-- ],
-- "emailAddresses": [
-- {
-- "metadata": {
-- "primary": true,
-- "source": {
-- "type": "CONTACT",
-- "id": "6992af4e0b2d36fd"
-- }
-- },
-- "value": "matt@***.com"
-- },
-- {
-- "metadata": {
-- "source": {
-- "type": "CONTACT",
-- "id": "6992af4e0b2d36fd"
-- }
-- },
-- "value": "admin@***.com"
-- }
-- ]
-- }
-- ],
-- "totalPeople": 2,
-- "totalItems": 2
-- }
local json = chilkat.JsonObject.new()
json.emit_compact = false
json:load(sbResponseBody:get_as_string())
print(json:emit())
local resourceName = ""
local etag = ""
local j = 0
local count_j = 0
local metadataPrimary = false
local metadataSourceType = ""
local metadataSourceId = ""
local displayName = ""
local familyName = ""
local givenName = ""
local displayNameLastFirst = ""
local unstructuredName = ""
local value = ""
local formattedValue = ""
local streetAddress = ""
local city = ""
local region = ""
local postalCode = ""
local country = ""
local countryCode = ""
local totalPeople = json:int_of("totalPeople")
local totalItems = json:int_of("totalItems")
local i = 0
local count_i = json:size_of_array("connections")
while i < count_i do
json.i = i
resourceName = json:string_of("connections[i].resourceName")
etag = json:string_of("connections[i].etag")
j = 0
count_j = json:size_of_array("connections[i].names")
while j < count_j do
json.j = j
metadataPrimary = json:bool_of("connections[i].names[j].metadata.primary")
metadataSourceType = json:string_of("connections[i].names[j].metadata.source.type")
metadataSourceId = json:string_of("connections[i].names[j].metadata.source.id")
displayName = json:string_of("connections[i].names[j].displayName")
familyName = json:string_of("connections[i].names[j].familyName")
givenName = json:string_of("connections[i].names[j].givenName")
displayNameLastFirst = json:string_of("connections[i].names[j].displayNameLastFirst")
unstructuredName = json:string_of("connections[i].names[j].unstructuredName")
j = j + 1
end
j = 0
count_j = json:size_of_array("connections[i].emailAddresses")
while j < count_j do
json.j = j
metadataPrimary = json:bool_of("connections[i].emailAddresses[j].metadata.primary")
metadataSourceType = json:string_of("connections[i].emailAddresses[j].metadata.source.type")
metadataSourceId = json:string_of("connections[i].emailAddresses[j].metadata.source.id")
value = json:string_of("connections[i].emailAddresses[j].value")
j = j + 1
end
j = 0
count_j = json:size_of_array("connections[i].addresses")
while j < count_j do
json.j = j
metadataPrimary = json:bool_of("connections[i].addresses[j].metadata.primary")
metadataSourceType = json:string_of("connections[i].addresses[j].metadata.source.type")
metadataSourceId = json:string_of("connections[i].addresses[j].metadata.source.id")
formattedValue = json:string_of("connections[i].addresses[j].formattedValue")
streetAddress = json:string_of("connections[i].addresses[j].streetAddress")
city = json:string_of("connections[i].addresses[j].city")
region = json:string_of("connections[i].addresses[j].region")
postalCode = json:string_of("connections[i].addresses[j].postalCode")
country = json:string_of("connections[i].addresses[j].country")
countryCode = json:string_of("connections[i].addresses[j].countryCode")
j = j + 1
end
i = i + 1
end