準備
名刺管理のSansanはAPIを公開しており、自分の所有する名刺を検索したりすることができる。
今回はそのAPIを使って名刺を検索してみる。
まず、Sansanにログインして「管理者設定」から「外部サービス連携」をクリック。
APIタブをクリックしたページで、APIキーを発行できる。ちなみにAPI利用にも権限があり、権限がないユーザでは発行できない。
Go言語で実装
発行したAPIキーを使ってAPIを呼ぶが、方法は至ってシンプル。
X-Sansan-Api-KeyヘッダにこのAPIキーを入れるだけで良い。
というわけで、会社名で検索するときの、ソースが以下である。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| package main
import ( "encoding/json" "log" "net/http" "net/url"
"github.com/davecgh/go-spew/spew" )
const ( apiKey = "xxxxxxxxxxxxxxxxxxxxx" searchURL = "https://api.sansan.com/v1.1/bizCards/search" )
type SansanRes struct { HasMore bool `json:"hasMore"` Data []Card `json:"data"` }
type Card struct { LastName string `json:"lastName"` FirstName string `json:"firstName"` Email string `json:"email"` Mobile string `json:"mobile"` Tel string `json:"tel"` DepartmentName string `json:"DepartmentName"` Title string `json:"title"` CompanyName string `json:"companyName"` PostalCode string `json:"postalCode"` Address string `json:"address"` PersonId string `json:"personId"` }
func main() { values := url.Values{} values.Add("companyName", "test") values.Add("range", "all") req, err := http.NewRequest("GET", searchURL+"?"+values.Encode(), nil) if err != nil { log.Fatal("http request error", err.Error()) }
req.Header.Set("X-Sansan-Api-Key", apiKey)
client := new(http.Client) resp, err := client.Do(req) if err != nil { log.Fatal(err.Error()) } defer resp.Body.Close()
dec := json.NewDecoder(resp.Body) var res SansanRes dec.Decode(&res)
spew.Dump(res)
}
|