중국에서 Google map 실행이 안되는 경우 해결 방법

Open API/Google|2018.10.23 14:42

중국내에서 Google map 실행이 안되는 경우 해결 방법


원인은 https 접속이 안되기 때문이고 

이 문제는 Google map FAQ에서 해결 방법을 제시해주고 있습니다.



아래 내용은 Google Map FAQ의 일부 발췌한 내용입니다.


Google Maps Platform products are served within China from the domain maps.google.cn. This domain does not support https. When making requests to Google Maps Platform products from China, please replace https://maps.googleapis.com with http://maps.google.cn.



중국에서 https://maps.googleapis.com 접속이 정상적으로 이뤄지지 않기 때문에


http 통신을 해야하고 중국내에서 이용할 수있는 도메인은 http://maps.google.cn 


아래와 같이 Google Map API javascript 파일 참조시에 도메인을 변경해줍니다.



<script src="http://maps.google.cn/maps/api/js?key=YOUR_API_KEY"
type="text/javascript">
</script>



내용이 변경될 수 있기 때문에 Google Map FAQ 링크를 함께 남깁니다.


https://developers.google.com/maps/faq#china_ws_access

댓글()

ip 주소로 국가 조회하는 방법 about.ip2c.org API

Open API/그 외 |2018.08.30 17:08

아이피주소로 국가 조회하기


서비스하는 내용이 국가별로 제한되는 부분이라


DB를 구축하자니 그 업데이트관리가 문제이고


API가 있지 않을까 해서 구글링을 통해 알게된 사이트입니다.



https://about.ip2c.org



Request : 


https://ip2c.org/8.8.8.8


Response : 


1;US;USA;United States


; 로 구분자가 지정되어있으며


0 : WRONG INPUT , 1 : NORMAL , 2 : UNKNOWN 


US : ISO 국가코드 








아래 내용은 about.ip2c.org 사이트에서 발췌한 INPUT/OUTPUT 설명입니다.

 
==== Accepted inputs: ============================================================

You can use http or https.

https://ip2c.org/XXX.XXX.XXX.XXX
or
https://ip2c.org/?ip=XXX.XXX.XXX.XXX
|
+ standard IPv4 from 0.0.0.0 to 255.255.255.255
+ e.g. we take your IP:
    |
    + URL looks like this:  https://ip2c.org/128.134.3.161
    |                       or
    |                       https://ip2c.org/?ip=128.134.3.161
    |
    + resulting string is:  1;KR;KOR;Korea Republic of


https://ip2c.org/XXXXXXXXXX
or
https://ip2c.org/?dec=XXXXXXXXXX
|
+ decimal number from 0 to 4294967295 (MAX_INT)
+ faster than ?ip= option, less server-side processing
+ to convert IPv4 to decimal you only need to know this:
    |
    + (IPv4) A.B.C.D == A*256^3 + B*256^2 + C*256 + D (decimal)
    + e.g.   5.6.7.8 == 5*256^3 + 6*256^2 + 7*256 + 8
                     == 5*16777216 + 6*65536 + 7*256 + 8
                     == 83886080 + 393216 + 1792 + 8
                     == 84281096


https://ip2c.org/s
or
https://ip2c.org/self
or
https://ip2c.org/?self
|
+ processes caller's IP
+ faster than ?dec= option but limited to one purpose - give info about yourself


Caution
Some clients (e.g. ASP) may have issues while trying to open a file over HTTP.
In that case a slash / preceding ?ip= is obligatory.
==== Possible outputs: ===========================================================

You can use http or https.

0;;;WRONG INPUT
|
+ your request has not been processed due to invalid syntax
    |
    + e.g. bad IPv4 like 300.400.abc.256
    + e.g. bad decimal like 2a3b4c or bigger than MAX_INT


1;CD;COD;COUNTRY
|
+ contains two-letter (ISO 3166) and three-letter country codes, and a full country name
+ country name may be multi-word and contain spaces
+ e.g. we take your IP:
    |
    + URL looks like this:  https://ip2c.org/128.134.3.161
    |                       or
    |                       https://ip2c.org/?ip=128.134.3.161
    |
    + resulting string is:  1;KR;KOR;Korea Republic of


2;;;UNKNOWN
|
+ given ip/dec not found in database or not yet physically assigned to any country


The first digit indicates status so you don't have to always parse the whole string.
Output is always semicolon delimited text/plain - you can pass it to any type of application.


태그 : API, IP, 국가조회

댓글()

카카오링크 보내기 ( Kakao.Link )

Open API/kakao|2017.01.18 15:20



동적으로 바뀌는 내용의 카카오링크를 보내는 예제입니다.



카카오 Developers 페이지에서도 확인 하실 수 있습니다.

https://developers.kakao.com/docs/js



추가적인 함수들은 아래 링크에서 확인가능합니다.

https://developers.kakao.com/docs/js-reference#kakao_link



적용하기 위해서는 api 와 url 정보 변경이 필요합니다.


샘플 Url : http://www.uhoon.co.kr/dev/kakao/83.html



<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, width=device-width"/>
<title>KakaoLink Demo(Dynamic) - Kakao JavaScript SDK</title>
<script src="//developers.kakao.com/sdk/js/kakao.min.js"></script>

</head>
<body>
<h3>카카오톡 앱이 설치되어 있는 모바일 기기라면 아래의 링크가 동작합니다.</h3>
<a id="kakao-link-btn" href="javascript:sendLink()">
<img src="//dev.kakao.com/assets/img/about/logos/kakaolink/kakaolink_btn_medium.png"/>
</a>
<script type='text/javascript'>
  //<![CDATA[
    // 사용할 앱의 JavaScript 키를 설정해 주세요.
    Kakao.init('eb3c1b62b32108278b664b7fc35d5174');

    function sendLink() {
		Kakao.Link.sendTalkLink({
			label: '카카오톡 내보내기',
			webLink: {
				text:'http://dev.uhoon.co.kr',
				url:'dev.uhoon.co.kr'
			}
		});
    }
  //]]>
</script>

</body>
</html>


댓글()

카카오톡 개발자 등록 및 애플리케이션 등록

Open API/kakao|2017.01.18 15:14

카카오 API도 버전이 올라가며 많이 바뀌었네요.


밑바닥 부터 천천히 하나씩 짚어봐야겠습니다.


첫발을 내딛기 위해서는 등록부터..




▼  https://developers.kakao.com/


Kakao Developers에 로그인 합니다.





▼ https://developers.kakao.com/apps


내 애플리케이션 메뉴에서 앱 만들기를 선택합니다.





▼ 앱 이름을 적고 앱 만들기를 클릭



▼ 필요한 경우 앱 아이콘을 업로드 할수도 있습니다.





▼ 등록하면 인증키가 바로 발급됩니다.






▼ 키가 발급되었어도 플랫폼 등록을 해야 실제 사용이 가능합니다.






▼  당분간은 어플 사용할 계획이 없으므로 웹으로 등록해봅니다.




▼ 실제로 키가 유출되어도 플랫폼 등록이 안되어있게되면 인증 오류가 발생하므로 걱정없습니다..ㅎㅎ




이렇게하면 카카오 API를 이용할 준비가 되었습니다.


하나씩 이용해봐야겠습니다.

태그 : API, 카카오

댓글()

다음 블로그 검색연동 ( XML , JSON )

Open API/Daum|2016.10.31 09:26



다음 블로그 검색 결과 XML로 받기


* API Url

 : http://dna.daum.net/apis/search


* Test Url

 : http://apis.daum.net/search/blog?q=uhoon.co.kr&apikey=DAUM_SEARCH_DEMO_APIKEY


* API Key 

 : http://dna.daum.net/myapi/dashboard


기타 검색 및 상세 옵션은 API 를 참고해주시고 블로그 검색을 위한 옵션입니다.



Request Parameter 

 

요청변수 설명
q string (필수) 검색을 원하는 질의어
result integer : 기본값 10, 최소 1, 최대 20 한 페이지에 출력될 결과수
pageno integer : 기본값 1, 최소 1, 최대 500 검색 결과 페이지 번호
sort string : date(기본값), accu
  • 검색 결과의 정렬순서
  • date : 최신글순
  • accu : 정확도순
output string : xml(기본값), json 결과형식
callback string 콜백함수(output이 json일 경우)




Response Parameter


출력 변수 설명
title string 검색 제목
link string 서비스 URL
description string 검색 결과의 간략한 소개
lastBuildDate string 검색 시간
totalCount integer 전체 검색 결과의 수
pageCount integer 전체 검색 결과의 페이지수
result integer 한 페이지에 출력될 결과수
item - 개별 검색 결과 정보
title string 개별 검색 결과의 제목
description string 개발 검색 결과의 본문 요약
link string 개별 검색 결과의 link url
comment string 관련 링크
author string 출처
pubDate string 등록일



댓글()

다음맵 로드뷰

Open API/Daum|2016.10.31 09:23

다음맵에서 지원하는 로드뷰 샘플 코드입니다.


추가로 위경도 정보를 읽어와서 표시할수 있도록 했습니다.




<!DOCTYPE html>
<html>

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>로드뷰</title>
	<script src="http://code.jquery.com/jquery-latest.min.js"></script>
	<script type="text/javascript" src="http://apis.daum.net/maps/maps3.js?apikey=51e40b674ec6f718ea6f04246c850e6de7ec841a" charset="utf-8"></script>
	<script type="text/javascript">
		function init() {
			var p = new daum.maps.LatLng(37.567874958332034, 126.97975671440324);
			var rc = new daum.maps.RoadviewClient();
			var rv = new daum.maps.Roadview(document.getElementById("roadview"));
			rc.getNearestPanoId(p, 50, function (panoid) {
				rv.setPanoId(panoid, p);
			});
			daum.maps.event.addListener(rv, "position_changed", function () {
				$("#latlon").val(rv.getPosition());
			});
		}
	</script>
</head>

<body onload="init()">
	<div id="roadview" style="width:600px;height:400px;"></div>
	<input type="text" id="latlon" style="width:450px;"/>
</body>

</html>


댓글()

다음맵 api 마커 + 말풍선

Open API/Daum|2016.10.31 09:12



다음맵 API를 이용한 기본 마커 + 말풍선 샘플 코드입니다.


<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, width=device-width, target-densityDpi=device-dpi"> <title>용산전쟁기념관</title> <style type="text/css"> html, body, #map {margin: 0; padding: 0; width: 100%; height: 100%} </style> <script type="text/javascript" src="http://apis.daum.net/maps/maps3.js?apikey=DAUM_MAPS_DEMO_APIKEY" charset="utf-8"></script> <script type="text/javascript"> var map; function init() { map = new daum.maps.Map(document.getElementById('map'), { center: new daum.maps.LatLng(37.53592870797618, 126.97726376303085) });    var icon = new daum.maps.MarkerImage( 'http://maps.google.com/mapfiles/kml/pal3/icon46.png', new daum.maps.Size(20, 20), new daum.maps.Point(20, 20) ); var marker = new daum.maps.Marker({ position: new daum.maps.LatLng(37.5367, 126.9772), image : icon }); marker.setMap(map);    var infowindow = new daum.maps.InfoWindow({ content: '<a href="http://www.warmemo.co.kr" target="_blank" style="margin:1em;line-height:2;text-decoration:none">장소 : 용산전쟁기념관 기획전시실   <BR>     프로그램명: 코코몽 녹색놀이터 <br>     기간 : 2012.12.01-2012.12.31<br>     예약현황 : 80개 단체 5000명(현재)</a>' });   daum.maps.event.addListener(marker, "click", function() { infowindow.open(map, marker); });   daum.maps.event.addListener(map, "click", function() { infowindow.close(); });     var marker1 = new daum.maps.Marker({ position: new daum.maps.LatLng(37.5245, 126.9805), image : icon });   marker1.setMap(map); var infowindow1 = new daum.maps.InfoWindow({ content: '<a href="http://www.museum.go.kr" target="_blank" style="margin:1em;line-height:2;text-decoration:none">장소 : 국립중앙 박물관   <BR>     프로그램명: 2013 웨딩페어 <BR>     기간 : 2012.12.01-2012.12.31<BR>     예약현황 : 2개 단체 20000명(현재)</a>' });   daum.maps.event.addListener(marker1, "click", function() { infowindow1.open(map, marker1); });   daum.maps.event.addListener(map, "click", function() { infowindow1.close(); }); } </script> </head> <body onload="init()"> <div id="map"></div>    </body> </html>


댓글()