---
title: APIにアクセス元の国や都道府県を追加する
category: API
weight: 1
---

カスタム処理にあるSmartyの定数としてAPIのリクエスト元のユーザーの地理情報が取得できます。
 
## アクセス元として利用できるコード
```{$smarty.const.GEO_COUNTRY_CODE}``` ISO 3166-2に基づく国のコード。日本の場合はJPになります。  
```{$smarty.const.GEO_REGION}``` ISO 3166-2に基づくの区分コード。日本の場合は都道府県などの番号が入ります。例)東京都:13  
```{$smarty.const.GEO_CONN_SPEED}``` broadband, cable, dialup, mobileなどの接続環境のコードが入ります。  

## profileを返すAPIに地理情報を追加する

**1. カスタム処理に以下のコードを記述します** 
```
{assign_array var=processed_json values=""}
{assign var=processed_json value=$json}
{assign var=processed_json.geo_country_code value=$smarty.const.GEO_COUNTRY_CODE}
{assign var=processed_json.geo_region value=$smarty.const.GEO_REGION}
{assign var=processed_json.geo_conn_speed value=$smarty.const.GEO_CONN_SPEED}
```
$jsonは下記でセットすると、APIのPostProcessでの利用できるAPIの出力結果です。  
$processed_jsonは、PostProcessでの変換後の出力結果を投入できます。


**2. APIのPostProcessに上記のカスタム処理をセット** 

**3. API出力に例えば、以下のようにAPIのリクスト元の地理データが追加されます**  
```
{"name1":"加藤",
"name2":"ケンタ",
"member_id":96,
"group_ids":{"1":"管理者","110":"一般会員"},
"shash":"ca64ddf281bc0168626c2706fde81126",
"expiresAt":1628260083,
"geo_country_code":"JP",
"geo_region":"13",
"geo_conn_speed":"broadband"
}
```

## 注意
これらの地理データはIPアドレスベースで分類されていますが、正確性を保証するものではありません。あくまでも目安としてご利用ください。

