本文件將說明使用 Google Civic Information API 的須知。您可以參閱這篇 Civic Info API 常見問題,瞭解該 API 的基本資訊,以及我們使用者論壇中的常見問題。此外,您也可以查看下列兩個範例,前者是查詢選舉期間的選民資訊,後者則用於查詢民選代表。
向 Google 指定您的應用程式
應用程式每次傳送要求給 Google Civic Information API 時,都必須透過每次要求加入 API 金鑰,藉此識別自己的身分。
取得並使用 API 金鑰
要取得 API 金鑰:
- 在 API 控制台中開啟「憑證」頁面。
-
這個 API 支援兩種憑證。建立適合您專案的憑證:
-
OAuth 2.0:每當您的應用程式要求私人使用者資料時,都必須與要求一併傳送 OAuth 2.0 權杖。應用程式會先傳送用戶端 ID,並可能傳送用戶端密鑰來取得權杖。您可以為網路應用程式、服務帳戶或已安裝的應用程式產生 OAuth 2.0 憑證。
注意:這個 API 沒有任何需要 OAuth 2.0 授權的方法,因此您可能只需要取得下方說明的 API 金鑰。但是,如果您的應用程式呼叫其他需要使用者授權的 API,您仍然需要 OAuth 2.0 憑證。
詳情請參閱 OAuth 2.0 說明文件。
-
API 金鑰:沒有提供 OAuth 2.0 權杖的要求必須傳送 API 金鑰。金鑰可用來識別專案,並提供 API 存取權、配額和報表。
API 支援數種類型的 API 金鑰限制。如果您還沒有所需的 API 金鑰,請依序點按「Create credentials」(建立憑證) >「API key」(API 金鑰),在控制台中建立 API 金鑰。您可以按一下「限制金鑰」並選取其中一個「限制」,為金鑰限制金鑰,然後再將其用於實際工作環境。
-
為確保您 API 金鑰的安全,請遵循安全使用 API 金鑰的最佳做法。
取得 API 金鑰後,應用程式可以將查詢參數 key=yourAPIKey
附加到所有要求網址。
API 金鑰可以安全地嵌入網址中,不需任何編碼。
API 金鑰限制
您的 API 金鑰預設不受限。如果任何人都可以讀取這組金鑰 (例如在瀏覽器中置入金鑰),或存取金鑰所在裝置,就會不安全。建議您為這組 API 金鑰設定限制,防止未經授權的使用行為。
如要新增限制,請在「已建立 API 金鑰」對話方塊中按一下「限制金鑰」。系統隨即會顯示「API key」(API 金鑰) 設定面板:
請根據應用程式需求選取限制類型:
- 與 API 直接互動的網頁應用程式 (不得透過任何後端或中介軟體),應該新增 HTTP 參照網址限制。不過請注意,這類應用程式會公開 API 金鑰,建議改用服務帳戶驗證配置。
- 無法另行支援服務帳戶的後端應用程式 (例如用戶端程式庫中沒有支援的語言的嵌入裝置) 應新增「IP 位址」限制,防止用戶端使用不同 IP 位址的用戶端。
- Android 應用程式應新增「Android 應用程式」限制,並新增套件名稱和 SHA-1 簽署憑證指紋。
- iOS 應用程式應新增 iOS 應用程式限制,並新增任何 iOS 軟體包 ID 以限制向這些 iOS 套件發出 API 呼叫。
測試時,您可能不想設定任何限制。不過,建議您為這組金鑰新增限制,或是在將應用程式部署至實際工作環境後刪除金鑰。
選舉查詢範例
以下範例 (使用 API 版本「v2」) 呼叫 electionQuery API 來取得有效選舉 ID 清單,然後使用 voterInfoQuery API 搭配選民登記地址,取得所選選舉的相關資訊。
請使用 ElectionQuery 取得有效選舉 ID 清單:
https://www.googleapis.com/civicinfo/v2/elections?key=<YOUR_API_KEY>
選舉查詢回應:
{ "kind": "civicinfo#electionsqueryresponse", "elections": [ { "id": "2000", "name": "VIP Test Election", "electionDay": "2013-06-06" }, { "id": "2124", "name": "Rhode Island 2012 Primary Election", "electionDay": "2012-09-11" }, { "id": "2126", "name": "Delaware 2012 Primary Election", "electionDay": "2012-09-11" } ] }
使用 curl 的 ElectionrInfoQuery
使用 curl
傳送 VIP 測試選舉 ID 2000 的 選票,並在 (測試) 地址 1263 Pacific Ave. Kansas City, KS 的選民 (請參閱下方的 ElectionrInfoQuery 回應) 投票:
curl "https://www.googleapis.com/civicinfo/v2/voterinfo?key=<YOUR_API_KEY>&address=1263%20Pacific%20Ave.%20Kansas%20City%20KS&electionId=2000"
使用適用於 JavaScript 的 Google API 用戶端程式庫 ElectionrInfoQuery
此範例會發出與先前 curl 範例相同的 ElectionrInfoQuery,但使用 JavaScript 用戶端程式庫。ElectionrInfoQuery 回應與 curl 範例回應相同。
<!doctype html> <html> <head> <script> /** * Build and execute request to look up voter info for provided address. * @param {string} address Address for which to fetch voter info. * @param {function(Object)} callback Function which takes the * response object as a parameter. */ function lookup(address, callback) { /** * Election ID for which to fetch voter info. * @type {number} */ var electionId = 2000; /** * Request object for given parameters. * @type {gapi.client.HttpRequest} */ var req = gapi.client.request({ 'path' : '/civicinfo/v2/voterinfo', 'params' : {'electionId' : electionId, 'address' : address} }); req.execute(callback); } /** * Render results in the DOM. * @param {Object} response Response object returned by the API. * @param {Object} rawResponse Raw response from the API. */ function renderResults(response, rawResponse) { var el = document.getElementById('results'); if (!response || response.error) { el.appendChild(document.createTextNode( 'Error while trying to fetch polling place')); return; } var normalizedAddress = response.normalizedInput.line1 + ' ' + response.normalizedInput.city + ', ' + response.normalizedInput.state + ' ' + response.normalizedInput.zip; if (response.pollingLocations.length > 0) { var pollingLocation = response.pollingLocations[0].address; var pollingAddress = pollingLocation.locationName + ', ' + pollingLocation.line1 + ' ' + pollingLocation.city + ', ' + pollingLocation.state + ' ' + pollingLocation.zip; var normEl = document.createElement('strong'); normEl.appendChild(document.createTextNode( 'Polling place for ' + normalizedAddress + ': ')); el.appendChild(normEl); el.appendChild(document.createTextNode(pollingAddress)); } else { el.appendChild(document.createTextNode( 'Could not find polling place for ' + normalizedAddress)); } } /** * Initialize the API client and make a request. */ function load() { gapi.client.setApiKey('YOUR API KEY GOES HERE'); lookup('1263 Pacific Ave. Kansas City KS', renderResults); } </script> <script src="https://apis.google.com/js/client.js?onload=load"></script> </head> <body> <div id="results"></div> </body> </html>
ElectionrInfoQuery 回應:
{ "kind": "civicinfo#voterinforesponse", "status": "success", "election": { "id": "2000", "name": "VIP Test Election", "electionDay": "2013-06-06" }, "normalizedInput": { "line1": "1263 Pacific Ave", "city": "Kansas City", "state": "KS", "zip": "66102" }, "pollingLocations": [ { "address": { "locationName": "National Guard Armory", "line1": "100 S 20th St", "line2": "", "line3": "", "city": "Kansas City", "state": "KS", "zip": "66102 " }, "pollingHours": " - " } ], "contests": [ { "type": "General", "office": "Attorney" }, { "type": "General", "office": "Sheriff" }, { "type": "General", "office": "Kansas Representative 32", "district": { "name": "Kansas Representative 32", "scope": "stateLower", "id": "32" }, "sources": [ { "name": "Voting Information Project", "official": true } ] }, { "type": "General", "office": "Governor/Lt. Governor", "candidates": [ { "name": "Andrew P. Gray", "party": "Libertarian", "email": "chair@lpks.org" }, { "name": "Kenneth (ken) W. Cannon", "party": "Reform" }, { "name": "Tom Holland", "party": "Democratic", "candidateUrl": "www.tomhollandforkansas.com", "email": "info@tomhollandforkansas.com" }, { "name": "Sam Brownback", "party": "Republican", "candidateUrl": "www.brownbackforkansas.com", "email": "media@brownback.com" } ] }, { "type": "General", "office": "KCKCC Member AL Brd of Trustee" }, { "type": "General", "office": "Secretary of State", "candidates": [ { "name": "Chris Biggs", "party": "Democratic" }, { "name": "Kris Kobach", "party": "Republican" }, { "name": "Phillip Horatio Lucas", "party": "Libertarian" }, { "name": "Derek Langseth", "party": "Reform" } ] }, { "type": "General", "office": "U.S. Senate", "district": { "name": "U.S. Senate", "scope": "statewide", "id": "5" }, "candidates": [ { "name": "Lisa Johnston", "party": "Democratic", "candidateUrl": "www.lisaforkansas.com", "phone": "913-662-1457", "email": "lisa@lisaforkansas.com" }, { "name": "Jerry Moran", "party": "Republican" }, { "name": "Michael Wm. Dann", "party": "Libertarian" }, { "name": "Joseph (joe) K. Bellis", "party": "Reform" } ], "sources": [ { "name": "Voting Information Project", "official": true } ] }, { "type": "General", "office": "BD of Public Utilities 2" }, { "type": "General", "office": "Attorney General", "candidates": [ { "name": "Steve Six", "party": "Democratic" }, { "name": "Derek Schmidt", "party": "Republican" }, { "name": "Dennis Hawver", "party": "Libertarian" } ] }, { "type": "General", "office": "U.S. Representative 3" }, { "type": "General", "office": "Governor/Lt. Governor", "district": { "name": "Governor/Lt. Governor", "scope": "statewide", "id": "1" }, "candidates": [ { "name": "Andrew P. Gray", "party": "Libertarian", "email": "chair@lpks.org" }, { "name": "Kenneth (ken) W. Cannon", "party": "Reform" }, { "name": "Tom Holland", "party": "Democratic", "candidateUrl": "www.tomhollandforkansas.com", "email": "info@tomhollandforkansas.com" }, { "name": "Sam Brownback", "party": "Republican", "candidateUrl": "www.brownbackforkansas.com", "email": "media@brownback.com" } ], "sources": [ { "name": "Voting Information Project", "official": true } ] }, { "type": "General", "office": "Commissioner-At-Large 2" }, { "type": "General", "office": "Kansas Senate 6" }, { "type": "General", "office": "Clerk" }, { "type": "General", "office": "President / Vice President" }, { "type": "General", "office": "Register of Deeds" }, { "type": "General", "office": "BD of Public Utilities (AL)" }, { "type": "General", "office": "Commissioner 2" }, { "type": "General", "office": "USD 500" }, { "type": "General", "office": "State Board of Education 1" }, { "type": "General", "office": "Treasurer" } ], "state": [ { "name": "State of Kansas", "electionAdministrationBody": { "name": "Kansas", "electionOfficials": [ { "name": "Brad Bryant", "title": "Election Director", "officePhoneNumber": "785-296-4561", "emailAddress": "cclark@essvote.com" } ] }, "local_jurisdiction": { "name": "Wyandotte", "electionAdministrationBody": { "name": "Wyandotte", "electionInfoUrl": "http://www.wycokck.org/election", "electionOfficials": [ { "name": "Bruce Newby", "title": "Election Commissioner", "officePhoneNumber": "(913) 573-8500", "emailAddress": "hbbrooks@essvote.com" } ] }, "sources": [ { "name": "Voting Information Project", "official": true } ] }, "sources": [ { "name": "Voting Information Project", "official": true } ] } ] }
使用 curl 的 RederInfoQuery
以下範例說明如何查詢當選代表的地址。使用 curl
,為 (測試) 位址 1263 Pacific Ave. Kansas City, KS (下方的 representationativeInfoByAddress 回應) 傳送 representativeInfoByAddress 要求:
curl "https://www.googleapis.com/civicinfo/v2/representatives?key=<YOUR_API_KEY>&address=1263%20Pacific%20Ave.%20Kansas%20City%20KS"
回報錯誤
你看到民選官員的資訊缺漏或有誤嗎?有時候,公職人員可能會在正式約期結束前離開辦公室,或是變更聯絡資訊。請通知我們,這些異動尚未反映在我們傳回的資料中。
我們會與其他使用者、資料提供者或政府官方資料來源確認檢舉內容。由於報告為數眾多,所以我們可能不會直接將結果回覆給您。如果獲得核准,您的變更可能需要一些時間才會顯示在 API 結果中。
如要回報錯誤,請填寫這份表單。
proInfoByAddress 回應:
{ "kind": "civicinfo#representativeInfoResponse", "status": "success", "normalizedInput": { "line1": "1263 pacific ave", "city": "kansas city", "state": "KS", "zip": "66102" }, "divisions": { "ocd-division/country:us/state:ks/county:wyandotte/council_district:2": { "name": "Wyandotte County Commissioner District 2", "scope": "countyCouncil" }, "ocd-division/country:us/state:ks/cd:3": { "name": "Kansas's 3rd congressional district", "scope": "congressional", "officeIndices": [ 0 ] }, "ocd-division/country:us/state:ks/sldl:32": { "name": "Kansas House of Representatives district 32", "scope": "stateLower", "officeIndices": [ 1 ] }, "ocd-division/country:us/state:ks/place:kansas_city": { "name": "Kansas City city", "scope": "citywide", "officeIndices": [ 2, 3, 4, 5, 6, 7, 8 ] }, "ocd-division/country:us/state:ks/county:wyandotte": { "name": "Wyandotte County", "scope": "countywide" }, "ocd-division/country:us": { "name": "United States", "scope": "national", "officeIndices": [ 9, 10 ] }, "ocd-division/country:us/state:ks": { "name": "Kansas", "scope": "statewide", "officeIndices": [ 11, 12, 13, 14, 15, 16, 17 ] }, "ocd-division/country:us/state:ks/sldu:6": { "name": "Kansas State Senate district 6", "scope": "stateUpper", "officeIndices": [ 18 ] } }, "offices": [ { "name": "United States House of Representatives KS-03", "level": "federal", "officialIndices": [ 0 ] }, { "name": "KS State House District 32", "level": "state", "officialIndices": [ 1 ] }, { "name": "Sheriff", "level": "county", "officialIndices": [ 2 ] }, { "name": "District Attorney", "level": "county", "officialIndices": [ 3 ] }, { "name": "Register of Deeds", "level": "county", "officialIndices": [ 4 ] }, { "name": "Director of Revenue", "level": "county", "officialIndices": [ 5 ] }, { "name": "Unified Government Clerk", "level": "county", "officialIndices": [ 6 ] }, { "name": "Unified Government Commission, At Large, District 1", "level": "county", "officialIndices": [ 7 ] }, { "name": "Unified Government Commission, At Large, District 2", "level": "county", "officialIndices": [ 8 ] }, { "name": "President", "level": "federal", "officialIndices": [ 9 ] }, { "name": "Vice President", "level": "federal", "officialIndices": [ 10 ] }, { "name": "Governor", "level": "state", "officialIndices": [ 11 ] }, { "name": "State Treasurer", "level": "state", "officialIndices": [ 12 ] }, { "name": "Attorney General", "level": "state", "officialIndices": [ 13 ] }, { "name": "Secretary of State", "level": "state", "officialIndices": [ 14 ] }, { "name": "Lieutenant Governor", "level": "state", "officialIndices": [ 15 ] }, { "name": "United States Senate", "level": "federal", "officialIndices": [ 16, 17 ] }, { "name": "Insurance Commissioner", "level": "state", "officialIndices": [ 18 ] }, { "name": "KS State Senate District 6", "level": "state", "officialIndices": [ 19 ] } ], "officials": [ { "name": "Kevin Yoder", "address": [ { "line1": "215 Cannon HOB", "city": "washington d.c.", "state": "DC", "zip": "20515" } ], "party": "Republican", "phones": [ "(202) 225-2865" ], "urls": [ "http://yoder.house.gov/" ], "photoUrl": "http://yoder.house.gov/images/user_images/headshot.jpg", "channels": [ { "type": "Facebook", "id": "CongressmanKevinYoder" }, { "type": "Twitter", "id": "RepKevinYoder" } ] }, { "name": "Mike Peterson", "address": [ { "line1": "450 North 17th", "city": "kansas city", "state": "KS", "zip": "66102" } ], "party": "Democratic", "phones": [ "(785) 296-7371" ], "urls": [ "http://www.kslegislature.org/li/b2013_14/members/rep_peterson_michael_1/" ], "photoUrl": "http://www.kslegislature.org/li/m/images/pics/rep_peterson_michael_1.jpg", "emails": [ "michael.peterson@house.ks.gov" ] }, { "name": "Donald Ash", "address": [ { "line1": "701 Nth 7th Street Suite 20", "city": "kansas city", "state": "KS", "zip": "66101" } ], "party": "Democratic", "phones": [ "(913) 573-2861" ], "urls": [ "http://www.wycokck.org/DefaultDept32.aspx?id=2614" ], "emails": [ "dash@wycokck.org" ] }, { "name": "Jerome Gorman", "address": [ { "line1": "701 Nth 7th Street Suite 10", "city": "kansas city", "state": "KS", "zip": "66101" } ], "party": "Democratic", "phones": [ "(913) 573-2851" ], "urls": [ "http://www.wycokck.org/Internet2010DistAttyBanner.aspx?id=176&banner=6912&menu_id=946" ] }, { "name": "Nancy Burns", "address": [ { "line1": "710 n. 7th street", "city": "kansas city", "state": "KS", "zip": "66101" } ], "party": "Unknown", "phones": [ "(913) 573-2841" ], "urls": [ "http://www.wycokck.org/Internetdept.aspx?id=2600&menu_id=1024&banner=15284" ], "emails": [ "nburns@wycokck.org" ] }, { "name": "Debbie Pack", "address": [ { "line1": "710 n. 7th street", "city": "kansas city", "state": "KS", "zip": "66101" } ], "party": "Unknown", "phones": [ "(913) 573-2821" ], "urls": [ "http://www.wycokck.org/treasury/" ], "emails": [ "dpack@wycokck.org" ] }, { "name": "Bridgette D. Cobbins", "address": [ { "line1": "710 n. 7th street", "city": "kansas city", "state": "KS", "zip": "66101" } ], "party": "Unknown", "phones": [ "(913) 573-5260" ], "urls": [ "http://www.wycokck.org/InternetDept.aspx?id=18992&menu_id=554&terms=Bridgette%20Cobbins" ], "emails": [ "clerkwest@wycokck.org" ] }, { "name": "Vacant", "address": [ { "line1": "701 Nth 7th Street Suite 979", "city": "kansas city", "state": "KS", "zip": "66101" } ], "party": "Unknown", "phones": [ "(913) 573-5040" ], "urls": [ "http://www.wycokck.org/InternetDept.aspx?id=5750&menu_id=1278&banner=15284" ], "channels": [ { "type": "Facebook", "id": "cityofkck" }, { "type": "Twitter", "id": "CityofKCK" } ] }, { "name": "John Mendez", "address": [ { "line1": "701 Nth 7th Street Suite 979", "city": "kansas city", "state": "KS", "zip": "66101" } ], "party": "Unknown", "phones": [ "(913) 573-5040" ], "urls": [ "http://www.wycokck.org/Internetdept.aspx?id=5752&menu_id=1278&banner=15284" ], "emails": [ "jmendez@wycokck.org" ], "channels": [ { "type": "Facebook", "id": "cityofkck" }, { "type": "Twitter", "id": "CityofKCK" } ] }, { "name": "Barack Hussein Obama II", "address": [ { "line1": "The White House", "line2": "1600 Pennsylvania Avenue NW", "line3": "", "city": "Washington", "state": "DC", "zip": "20500" } ], "party": "Democrat", "phones": [ "(202) 456-1111", "(202) 456-1414" ], "urls": [ "http://www.whitehouse.gov/administration/president_obama/", "http://www.barackobama.com/index.php" ], "photoUrl": "http://www.whitehouse.gov/sites/default/files/imagecache/admin_official_lowres/administration-official/ao_image/president_official_portrait_hires.jpg", "channels": [ { "type": "GooglePlus", "id": "110031535020051778989" }, { "type": "Twitter", "id": "barackobama" }, { "type": "Facebook", "id": "barackobama" }, { "type": "YouTube", "id": "barackobama" } ] }, { "name": "Joseph (Joe) Robinette Biden Jr.", "address": [ { "line1": "The White House", "line2": "1600 Pennsylvania Avenue NW", "line3": "", "city": "Washington", "state": "DC", "zip": "20500" } ], "party": "Democrat", "urls": [ "http://www.whitehouse.gov/administration/vice-president-biden" ], "photoUrl": "http://www.whitehouse.gov/sites/default/files/imagecache/admin_official_lowres/administration-official/ao_image/vp_portrait.jpeg", "channels": [ { "type": "Twitter", "id": "VP" }, { "type": "Twitter", "id": "JoeBiden" }, { "type": "Facebook", "id": "joebiden" } ] }, { "name": "Sam Brownback", "address": [ { "line1": "Capitol", "line2": "300 sw 10th ave.", "city": "topeka", "state": "KS", "zip": "66612" } ], "phones": [ "(785) 296-3232" ], "urls": [ "http://www.governor.ks.gov/" ], "channels": [ { "type": "Facebook", "id": "govsambrownback" }, { "type": "Twitter", "id": "govsambrownback" } ] }, { "name": "Ron Estes", "address": [ { "line1": "Kansas State Treasurer 900 SW Jackson", "line2": "Suite 201", "city": "topeka", "state": "KS", "zip": "66612" } ], "phones": [ "(785) 296-3171" ], "urls": [ "http://www.kansasstatetreasurer.com/prodweb/main/index.php" ], "emails": [ "ron@treasurer.ks.gov" ], "channels": [ { "type": "Facebook", "id": "130975650300043" }, { "type": "Twitter", "id": "RonEstesKS" } ] }, { "name": "Derek Schmidt", "address": [ { "line1": "120 SW 10th Ave", "line2": "2nd Floor", "city": "topeka", "state": "KS", "zip": "66612" } ], "phones": [ "(785) 296-2215" ], "urls": [ "http://ag.ks.gov/" ], "channels": [ { "type": "Twitter", "id": "KSAGOffice" } ] }, { "name": "Kris Kobach", "address": [ { "line1": "Kansas Secretary of State Memorial Hall", "line2": "1st Floor", "line3": "120 sw 10th avenue", "city": "topeka", "state": "KS", "zip": "66612" } ], "phones": [ "(785) 296-4564" ], "urls": [ "http://www.kssos.org/" ], "emails": [ "kssos@sos.ks.gov" ], "channels": [ { "type": "Facebook", "id": "Kansas-Secretary-of-State" }, { "type": "Twitter", "id": "kansassos" } ] }, { "name": "Jeff Coyler", "address": [ { "line1": "State Capitol", "line2": "2nd Floor", "line3": "300 sw 10th ave.", "city": "topeka", "state": "KS", "zip": "66612" } ], "phones": [ "(785) 296-2214" ], "urls": [ "https://governor.ks.gov/about-the-office/lt-govenor-jeff-colyer" ] }, { "name": "Jerry Moran", "address": [ { "line1": "361A Russell Senate Office Building", "city": "washington d.c.", "state": "DC", "zip": "20510" } ], "party": "Republican", "phones": [ "(202) 224-6521" ], "urls": [ "http://www.moran.senate.gov/public/" ], "photoUrl": "http://moran.senate.gov/public/index.cfm/files/serve?File_id=cd666b47-46e3-4a48-bcf1-ea2890f99817", "channels": [ { "type": "Facebook", "id": "jerrymoran" }, { "type": "Twitter", "id": "JerryMoran" }, { "type": "YouTube", "id": "senatorjerrymoran" } ] }, { "name": "Pat Roberts", "address": [ { "line1": "109 Hart Senate Office Building", "city": "washington d.c.", "state": "DC", "zip": "20510" } ], "party": "Republican", "phones": [ "(202) 224-4774" ], "urls": [ "http://www.roberts.senate.gov/public/" ], "photoUrl": "http://roberts.senate.gov/public/index.cfm?a=Files.Serve&File_id=b42c6b05-966e-48ea-b3ed-9e5fc4ab1a0d", "emails": [ "pat_roberts@roberts.senate.gov" ], "channels": [ { "type": "Facebook", "id": "SenPatRoberts" }, { "type": "Twitter", "id": "SenPatRoberts" }, { "type": "YouTube", "id": "SenPatRoberts" } ] }, { "name": "Sandy Praeger", "address": [ { "line1": "420 sw 9th street", "city": "topeka", "state": "KS", "zip": "66612" } ], "phones": [ "(785) 296-3071" ], "urls": [ "http://www.ksinsurance.org/" ], "emails": [ "commissioner@ksinsurance.org" ], "channels": [ { "type": "Facebook", "id": "KansasInsuranceDepartment" } ] }, { "name": "Pat Pettey", "address": [ { "line1": "Kansas State Capitol", "line2": "300 SW 10th St.", "line3": "Room 125-E", "city": "Topeka", "state": "KS", "zip": "66612-1504" }, { "line1": "5316 Lakewood Street", "line2": "", "line3": "", "city": "Kansas City", "state": "KS", "zip": "66106" } ], "party": "Democratic", "phones": [ "(785) 296-7375" ], "urls": [ "http://www.kslegislature.org/li/b2013_14/members/sen_pettey_pat_1/" ], "photoUrl": "http://www.kslegislature.org/li/m/images/pics/sen_pettey_pat_1.jpg", "emails": [ "Pat.Pettey@senate.ks.gov" ], "channels": [ { "type": "Twitter", "id": "PatHPettey" }, { "type": "Facebook", "id": "PetteyForSenate" } ] } ] }