Получение кода ISO 3166-1 alpha-2 страны в Вконтакте

В данный момент я работаю над созданием социальной сети, которая не станет ничьей убийцей в виду своей тематической уникальности и убивать просто некого. Как и положено должна быть возможность регистрации через другие социальные сети. И вот дошли мы до социальной Вконтакте. Одним из полей в таблице где хранятся данные о пользователях социальной сети является идентификатор страны пользователя в формате ISO 3166-1 alpha-2.

 

ISO 3166-1 alpha-2 — система двухбуквенных кодов стран, определённая в ISO 3166-1, части стандарта ISO 3166, опубликованного Международной организацией по стандартизации (ISO) для обозначения стран, зависимых территорий и особых географических областей.

Подробнее про ISO 3166-1 alpha-2

 

Одним из методов, который возращает данные о пользователе является users.get

Но вот есть небольшая проблема. Данные о стране возвращаются в виде:

		"country": {
		"id": 9,
		"title": "США"
	},

 

А нам как я уже упоминал нужен двубуквенный код страны в формате ISO 3166-1 alpha-2. Для получения данных обо всех странах можно воспользоваться методом database.getCountriesById

Для начала приведу массив кодов ISO 3166-1 alpha-2 по странам:

		$iso_codes = [
		"AF" => "Afghanistan",
		"AL" => "Albania",
		"DZ" => "Algeria",
		"AS" => "American Samoa",
		"AD" => "Andorra",
		"AO" => "Angola",
		"AI" => "Anguilla",
		"AQ" => "Antarctica",
		"AG" => "Antigua and Barbuda",
		"AR" => "Argentina",
		"AM" => "Armenia",
		"AW" => "Aruba",
		"AU" => "Australia",
		"AT" => "Austria",
		"AZ" => "Azerbaijan",
		"BS" => "Bahamas",
		"BH" => "Bahrain",
		"BD" => "Bangladesh",
		"BB" => "Barbados",
		"BY" => "Belarus",
		"BE" => "Belgium",
		"BZ" => "Belize",
		"BJ" => "Benin",
		"BM" => "Bermuda",
		"BT" => "Bhutan",
		"BO" => "Bolivia",
		"BQ" => "Bonaire, Sint Eustatius and Saba",
		"BA" => "Bosnia and Herzegovina",
		"BW" => "Botswana",
		"BV" => "Bouvet Island",
		"BR" => "Brazil",
		"IO" => "British Indian Ocean Territory",
		"BN" => "Brunei Darussalam",
		"BG" => "Bulgaria",
		"BF" => "Burkina Faso",
		"BI" => "Burundi",
		"KH" => "Cambodia",
		"CM" => "Cameroon",
		"CA" => "Canada",
		"CV" => "Cape Verde",
		"KY" => "Cayman Islands",
		"CF" => "Central African Republic",
		"TD" => "Chad",
		"CL" => "Chile",
		"CN" => "China",
		"CX" => "Christmas Island",
		"CC" => "Cocos (Keeling) Islands",
		"CO" => "Colombia",
		"KM" => "Comoros",
		"CG" => "Congo",
		"CD" => "Congo, the Democratic Republic of the",
		"CK" => "Cook Islands",
		"CR" => "Costa Rica",
		"CI" => "Cote D'Ivoire",
		"HR" => "Croatia",
		"CU" => "Cuba",
		"CY" => "Cyprus",
		"CZ" => "Czech Republic",
		"DK" => "Denmark",
		"DJ" => "Djibouti",
		"DM" => "Dominica",
		"DO" => "Dominican Republic",
		"EC" => "Ecuador",
		"EG" => "Egypt",
		"SV" => "El Salvador",
		"GQ" => "Equatorial Guinea",
		"ER" => "Eritrea",
		"EE" => "Estonia",
		"ET" => "Ethiopia",
		"FK" => "Falkland Islands (Malvinas)",
		"FO" => "Faroe Islands",
		"FJ" => "Fiji",
		"FI" => "Finland",
		"FR" => "France",
		"GF" => "French Guiana",
		"PF" => "French Polynesia",
		"TF" => "French Southern Territories",
		"GA" => "Gabon",
		"GM" => "Gambia",
		"GE" => "Georgia",
		"DE" => "Germany",
		"GG" => "Bailiwick of Guernsey",
		"GH" => "Ghana",
		"GI" => "Gibraltar",
		"GR" => "Greece",
		"GL" => "Greenland",
		"GD" => "Grenada",
		"GP" => "Guadeloupe",
		"GU" => "Guam",
		"GT" => "Guatemala",
		"GN" => "Guinea",
		"GW" => "Guinea-Bissau",
		"GY" => "Guyana",
		"HT" => "Haiti",
		"HM" => "Heard Island and Mcdonald Islands",
		"VA" => "Holy See (Vatican City State)",
		"HN" => "Honduras",
		"HK" => "Hong Kong",
		"HU" => "Hungary",
		"IS" => "Iceland",
		"IN" => "India",
		"ID" => "Indonesia",
		"IR" => "Iran, Islamic Republic of",
		"IQ" => "Iraq",
		"IE" => "Ireland",
		"IL" => "Israel",
		"IT" => "Italy",
		"JM" => "Jamaica",
		"JP" => "Japan",
		"JE" => "Jersey",
		"JO" => "Jordan",
		"KZ" => "Kazakhstan",
		"KE" => "Kenya",
		"KI" => "Kiribati",
		"KP" => "Korea, Democratic People's Republic of",
		"KR" => "Korea, Republic of",
		"KW" => "Kuwait",
		"KG" => "Kyrgyzstan",
		"LA" => "Lao People's Democratic Republic",
		"LV" => "Latvia",
		"LB" => "Lebanon",
		"LS" => "Lesotho",
		"LR" => "Liberia",
		"LY" => "Libyan Arab Jamahiriya",
		"LI" => "Liechtenstein",
		"LT" => "Lithuania",
		"LU" => "Luxembourg",
		"MO" => "Macao",
		"MK" => "Macedonia, the Former Yugoslav Republic of",
		"MG" => "Madagascar",
		"MW" => "Malawi",
		"MY" => "Malaysia",
		"MV" => "Maldives",
		"ML" => "Mali",
		"MT" => "Malta",
		"MH" => "Marshall Islands",
		"MQ" => "Martinique",
		"MR" => "Mauritania",
		"MU" => "Mauritius",
		"YT" => "Mayotte",
		"MX" => "Mexico",
		"FM" => "Micronesia, Federated States of",
		"MD" => "Moldova, Republic of",
		"MC" => "Monaco",
		"MN" => "Mongolia",
		"ME" => "Montenegro",
		"MS" => "Montserrat",
		"MA" => "Morocco",
		"MZ" => "Mozambique",
		"MM" => "Myanmar",
		"NA" => "Namibia",
		"NR" => "Nauru",
		"NP" => "Nepal",
		"NL" => "Netherlands",
		"AN" => "Netherlands Antilles",
		"NC" => "New Caledonia",
		"NZ" => "New Zealand",
		"NI" => "Nicaragua",
		"NE" => "Niger",
		"NG" => "Nigeria",
		"NU" => "Niue",
		"NF" => "Norfolk Island",
		"MP" => "Northern Mariana Islands",
		"NO" => "Norway",
		"OM" => "Oman",
		"PK" => "Pakistan",
		"PW" => "Palau",
		"PS" => "Palestinian Territory, Occupied",
		"PA" => "Panama",
		"PG" => "Papua New Guinea",
		"PY" => "Paraguay",
		"PE" => "Peru",
		"PH" => "Philippines",
		"PN" => "Pitcairn",
		"PL" => "Poland",
		"PT" => "Portugal",
		"PR" => "Puerto Rico",
		"QA" => "Qatar",
		"RE" => "Reunion",
		"RO" => "Romania",
		"RU" => "Russian Federation",
		"RW" => "Rwanda",
		"SH" => "Saint Helena",
		"KN" => "Saint Kitts and Nevis",
		"LC" => "Saint Lucia",
		"PM" => "Saint Pierre and Miquelon",
		"VC" => "Saint Vincent and the Grenadines",
		"WS" => "Samoa",
		"SM" => "San Marino",
		"ST" => "Sao Tome and Principe",
		"SA" => "Saudi Arabia",
		"SN" => "Senegal",
		"RS" => "Serbia",
		"SC" => "Seychelles",
		"SL" => "Sierra Leone",
		"SX" => "Sint Maarten",
		"SG" => "Singapore",
		"SK" => "Slovakia",
		"SI" => "Slovenia",
		"SB" => "Solomon Islands",
		"SO" => "Somalia",
		"ZA" => "South Africa",
		"GS" => "South Georgia and the South Sandwich Islands",
		"ES" => "Spain",
		"LK" => "Sri Lanka",
		"SD" => "Sudan",
		"SS" => "South Sudan",
		"SR" => "Suriname",
		"SJ" => "Svalbard and Jan Mayen",
		"SZ" => "Swaziland",
		"SE" => "Sweden",
		"CH" => "Switzerland",
		"SY" => "Syrian Arab Republic",
		"TW" => "Taiwan, Province of China",
		"TJ" => "Tajikistan",
		"TZ" => "Tanzania, United Republic of",
		"TH" => "Thailand",
		"TL" => "Timor-Leste",
		"TG" => "Togo",
		"TK" => "Tokelau",
		"TO" => "Tonga",
		"TT" => "Trinidad and Tobago",
		"TN" => "Tunisia",
		"TR" => "Turkey",
		"TM" => "Turkmenistan",
		"TC" => "Turks and Caicos Islands",
		"TV" => "Tuvalu",
		"UG" => "Uganda",
		"UA" => "Ukraine",
		"AE" => "United Arab Emirates",
		"GB" => "United Kingdom",
		"US" => "United States",
		"UM" => "United States Minor Outlying Islands",
		"UY" => "Uruguay",
		"UZ" => "Uzbekistan",
		"VU" => "Vanuatu",
		"VE" => "Venezuela",
		"VN" => "Viet Nam",
		"VG" => "Virgin Islands, British",
		"VI" => "Virgin Islands, U.s.",
		"WF" => "Wallis and Futuna",
		"EH" => "Western Sahara",
		"YE" => "Yemen",
		"ZM" => "Zambia",
		"ZW" => "Zimbabwe"
		];
	

 

А теперь массив, где каждый ключ массива является кодом страны в социальной сети Вконтакте, а значением является двубуквенный идентификатор кода в формате ISO 3166-1 alpha-2.

		$iso_vk_codes = [
		"1"  => "RU",
		"2"  => "UA",
		"3"  => "BY",
		"4"  => "KZ",
		"5"  => "AZ",
		"6"  => "AM",
		"7"  => "GE",
		"8"  => "IL",
		"9"  => "US",
		"10" => "CA",
		"11" => "KG",
		"12" => "LV",
		"13" => "LT",
		"14" => "EE",
		"15" => "MD",
		"16" => "TJ",
		"17" => "TM",
		"18" => "UZ",
		"19" => "AU",
		"20" => "AT",
		"21" => "AL",
		"22" => "DZ",
		"23" => "AS",
		"24" => "AI",
		"25" => "AO",
		"26" => "AD",
		"27" => "AG",
		"28" => "AR",
		"29" => "AW",
		"30" => "AF",
		"31" => "BS",
		"32" => "BD",
		"33" => "BB",
		"34" => "BH",
		"35" => "BZ",
		"36" => "BE",
		"37" => "BJ",
		"38" => "BM",
		"39" => "BG",
		"40" => "BO",
		"41" => "BA",
		"42" => "BW",
		"43" => "BR",
		"44" => "BN",
		"45" => "BF",
		"46" => "BI",
		"47" => "BT",
		"48" => "VU", 
		"49" => "GB",
		"50" => "HU",
		"51" => "VE",
		"52" => "VG",
		"53" => "VI",
		"54" => "TL",
		"55" => "VN",
		"56" => "GA",
		"57" => "HT",
		"58" => "GY",
		"59" => "GM",
		"60" => "GH",
		"61" => "GP",
		"62" => "GT",
		"63" => "GN",
		"64" => "GW",
		"65" => "DE",
		"66" => "GI",
		"67" => "HN",
		"68" => "HK",
		"69" => "GD",
		"70" => "GL",
		"71" => "GR",
		"72" => "GU",
		"73" => "DK",
		"74" => "DM",
		"75" => "DO",
		"76" => "EG",
		"77" => "ZM",
		"78" => "EH",
		"79" => "ZW",
		"80" => "IN",
		"81" => "ID",
		"82" => "JO",
		"83" => "IQ",
		"84" => "IR",
		"85" => "IE",
		"86" => "IS",
		"87" => "ES",
		"88" => "IT",
		"89" => "YE",
		"90" => "CV",
		"91" => "KH",
		"92" => "CM",
		"93" => "QA",
		"94" => "KE",
		"95" => "CY",
		"96" => "KI",
		"97" => "CN",
		"98" => "CO",
		"99" => "KM",
		"100" => "CG",
		"101" => "CD",
		"102" => "CR",
		"103" => "CI",
		"104" => "CU",
		"105" => "KW",
		"106" => "LA",
		"107" => "LS",
		"108" => "LR",
		"109" => "LB",
		"110" => "LY",
		"111" => "LI",
		"112" => "LU",
		"113" => "MU",
		"114" => "MR",
		"115" => "MG",
		"116" => "MO",
		"117" => "MK",
		"118" => "MW",
		"119" => "MY",
		"120" => "ML",
		"121" => "MV",
		"122" => "MT",
		"123" => "MA",
		"124" => "MQ",
		"125" => "MH",
		"126" => "MX",
		"127" => "FM",
		"128" => "MZ",
		"129" => "MC",
		"130" => "MN",
		"131" => "MS",
		"132" => "MM",
		"133" => "NA",
		"134" => "NR",
		"135" => "NP",
		"136" => "NE",
		"137" => "NG",
		"138" => "AN", 
		"139" => "NL",
		"140" => "NI",
		"141" => "NU",
		"142" => "NZ",
		"143" => "NC",
		"144" => "NO",
		"145" => "AE",
		"146" => "OM",
		"147" => "IM", 
		"148" => "NF",
		"149" => "KY",
		"150" => "CK",
		"151" => "TC",
		"152" => "PK",
		"153" => "PW",
		"154" => "PS",
		"155" => "PA",
		"156" => "PG",
		"157" => "PY",
		"158" => "PE",
		"159" => "PN",
		"160" => "PL",
		"161" => "PT",
		"162" => "PR",
		"163" => "RE",
		"164" => "RW",
		"165" => "RO",
		"166" => "SV",
		"167" => "WS",
		"168" => "SM",
		"169" => "ST",
		"170" => "SA",
		"171" => "SZ",
		"172" => "SH",
		"173" => "KP",
		"174" => "MP",
		"175" => "SC",
		"176" => "SN",
		"177" => "VC",
		"178" => "KN",
		"179" => "LC",
		"180" => "PM",
		"181" => "RS", 
		"182" => "SG",
		"183" => "SY",
		"184" => "SK",
		"185" => "SI",
		"186" => "SB",
		"187" => "SO",
		"188" => "SD",
		"189" => "SR",
		"190" => "SL",
		"191" => "TH",
		"192" => "TW",
		"193" => "TZ",
		"194" => "TG",
		"195" => "TK",
		"196" => "TO",
		"197" => "TT",
		"198" => "TV",
		"199" => "TN",
		"200" => "TR",
		"201" => "UG",
		"202" => "WF",
		"203" => "UY",
		"204" => "FO",
		"205" => "FJ",
		"206" => "PH",
		"207" => "FI",
		"208" => "FK",
		"209" => "FR",
		"210" => "GF",
		"211" => "PF",
		"212" => "HR",
		"213" => "CF",
		"214" => "TD",
		"215" => "CZ",
		"216" => "CL",
		"217" => "CH",
		"218" => "SE",
		"219" => "SJ",
		"220" => "LK",
		"221" => "EC",
		"222" => "GQ",
		"223" => "ER",
		"224" => "ET",
		"225" => "", 
		"226" => "KR",
		"227" => "ZA",
		"228" => "JM",
		"229" => "JP",
		"230" => "ME", 
		"231" => "DJ",
		"232" => "SS", 
		"233" => "VA", 
		"234" => "SX", 
		"235" => "BQ", 
		"236" => "GG", 
		"237" => "JE", 
		];
	

 

Для этих стран в Вконтакте ответа не нашёл:

		"TF" => "French Southern Territories",
		"YT" => "Mayotte", // нет в Вконтакте
		"AQ" => "Antarctica",
		"BV" => "Bouvet Island", // для этой страны в ВК не нашёл ответа
		"IO" => "British Indian Ocean Territory",
		"CX" => "Christmas Island",
		"CC" => "Cocos (Keeling) Islands",
		"HM" => "Heard Island and Mcdonald Islands",
		"GS" => "South Georgia and the South Sandwich Islands",
		"UM" => "United States Minor Outlying Islands",
	

Задал вопрос по поводу этих стран в поддержку Вконтакте и получил следующий ответ:

Если вы не нашли эти страны у нас, это значит только одно — их в базе нет. Список всех доступных стран можно получить этим методом — https://vk.com/dev/database.getCountries

Тэги:

Тэг в списке: