![]() |
|
|
API 기본 페이지 API 시작하기 API 설명서 갤러리에 버튼 추가 버튼 갤러리 |
Internet Explorer용 Google 툴바 4 사용자를 위한 맞춤 검색 버튼 만들기 가이드이 문서에서는 맞춤 검색 버튼을 만드는 방법에 대해 설명합니다. 현재 맞춤 검색 버튼은 Internet Explorer에서만 사용할 수 있습니다.목차맞춤 검색 버튼 정의맞춤 검색 버튼은 Google 툴바에 추가할 수 있는 푸시 버튼으로, 맞춤 네비게이션, 검색, 보내기 및 업데이트 기능을 가지고 있습니다. 특히 맞춤 검색 버튼은 Google 검색 엔진뿐 아니라 대부분의 웹사이트 검색 엔진을 사용할 수 있습니다. 맞춤 검색 버튼을 클릭하면 다음 작업을 수행할 수 있습니다.
맞춤 검색 버튼에는 다음과 같은 사용자 인터페이스 기능이 있습니다.
맞춤 검색 버튼에는 앞서 설명한 사용자 인터페이스 기능의 속성 외에도 상기 작업을 수행하는 다음 속성(XML 파일에 저장)이 있습니다.
다음 툴바는 Slashdot, Wikipedia 및 BBC(하이라이트됨)에 대한 맞춤 검색 버튼의 예입니다. BBC 버튼은 뉴스 피드로, 아래쪽 화살표를 누르면 헤드라인 드롭다운 목록이 나타납니다.
맞춤 검색 버튼 추가Google 툴바에서 맞춤 검색 버튼을 추가하거나 관리하려면 다음 방법을 따르시기 바랍니다.
맞춤 검색 버튼 자동으로 만들기 및 추가하기
결과: 맞춤 검색 버튼이 설치되어 바로 사용할 수 있게 됩니다. 한편, 이 절차를 통해 맞춤 검색 버튼 XML 파일과 아이콘이 생성되고 다음 경로에 해시된 이름으로 저장됩니다.
이러한 접근법은 복잡한 POST 요청을 사용하는 웹사이트 또는 리디렉션을 사용하기 때문에 맞춤 검색 버튼 XML 파일
맞춤 검색 버튼의 속성과 동작은
<?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<site>http://www.wikipedia.org</site>
</button>
</custombuttons>
참고사항 - XML 파일의 URL 문자열에는 빈 줄 및 공백을 포함할 수 있으나 툴바에서 파일을 해석할 때에는 삭제됩니다. 즉, URL에 공백이 반드시 필요한지 여부를 확인하고 (브라우저에서 이미 변경하지 않은 경우) 해당 공백을 "%20"으로 변경해야 삭제되지 않습니다. 다음 예의 대부분은 URL 중간에 빈 줄을 포함하여 두 줄로 입력했음에도 제대로 작동하는 URL을 보여줍니다.
참고사항 - 이 가이드에 있는 전체 예의 경우
맞춤 검색 버튼 수동으로 만들기 및 설치하기Google 툴바에 맞춤 검색 버튼을 설치하려면 다음을 수행하십시오.
버튼 제목 및 도구 설명 추가
다음과 같이
도구 설명을 추가하려면
<?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<site>http://www.wikipedia.org</site>
<title>Wikipedia</title>
<description>The Free Encyclopedia</description>
</button>
</custombuttons>
맞춤 검색 버튼Google 툴바를 사용하여 버튼을 만들면 사용자가 툴바 검색창에 입력한 검색어를 사용하는 대부분의 웹사이트 검색 엔진을 실행시킬 수 있습니다. 다음의 두 예에는 Wikipedia 검색 엔진을 사용하여 wikipedia.org를 검색하는 버튼과 Google 검색 엔진을 사용하여 인터넷을 검색하는 버튼이 나와 있습니다.
버튼을 만들려면 참고사항 - Wikipedia 검색용 맞춤 검색 버튼
예를 들어, Wikipedia 검색 엔진을 사용하여 wikipedia.com을 검색하는 버튼을 만들려면 "개"와 같이 가장 단순한 Wikipedia 검색어로 시작하십시오.
<search>http://en.wikipedia.org/wiki/Special:Search?search=
이 검색 요소를 이전 버튼에 추가하면 다음과 같이 표시됩니다.
<?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<site>http://www.wikipedia.org</site>
<title>Wikipedia</title>
<description>The Free Encyclopedia</description>
<search>http://en.wikipedia.org/wiki/Special:Search?search=
URL의 앰퍼샌드(&)는 " Google 검색용 맞춤 검색 버튼
Google 검색 엔진을 사용하여 인터넷을 검색하는 버튼을 만들려면 "개"와 같이 가장 단순한 Google 검색어로 시작하십시오.
<search>http://www.google.com/search?q={query}</search>
다음 예를 참조하십시오. Slashdot 검색
<search>http://slashdot.org/search.pl?query={query}</search>
검색 작업을 POST로 보내기
검색 작업을 GET 대신 POST로 보내려면 검색 요소에 Onion 검색다음은 POST 방식을 사용하여 post 데이터(하이라이트됨)를 보내는 예입니다. <search method="post">http://www.theonion.com/content/search/node ?edit%5Bkeys%5D={query}</search> 맞춤 검색 버튼 업데이트버튼의 XML 파일을 호스팅하는데 사용하는 다운로드 URL은 버튼 업데이트 시 버튼의 고유 ID가 됩니다 동일한 URL에서 버튼을 두 번 다운로드하면 툴바는 새 버튼을 추가하는 대신 이전 버튼의 변경을 제안합니다.
버튼을 추가하는 5가지 방법 중 첫 번째와 다섯 번째 방법의 경우, 버튼이 업데이트되는 경로를 자동으로 인식하며 XML 파일에 작성된 <update>http://buttons.com/updated_button.xml</update> 버튼 옵션
버튼은
<?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<title>Weather</title>
<option>
<title>Zip code</title>
<description>Enter a US zip code. For example, 94043 is Mountain View, CA</description>
<default>94043</default>
</option>
<site>http://www.google.com/search?q=weather+{option1}</site>
</button>
</custombuttons>
옵션 제목은 필수항목이며, 기본값 및 설명은 필수항목이 아닙니다. 모든 URL 템플릿 내역에 {option1} 변수를 사용하여 사용자 텍스트를 삽입하십시오. 현재 입력한 텍스트의 검토나 공백 처리는 지원되지 않으며, 양식 제출의 텍스트 수정 상자에서와 같이 {option1} 변수는 사용자가 utf-8 및 cgi 매개변수 이스케이핑을 사용하여 입력하는 것을 모두 이스케이프합니다. 현재 URL 포함
검색어를 보내는 것 외에도 브라우저가 세 가지 방법 즉, 인코딩된
다음은 현재 페이지의 이전 버전을 찾기 위해
<site>http://web.archive.org/web/*/
다음은
<site method="post">http://www.archive.org/searchresults.php?search=
현재 웹사이트 내에서 Google 검색 엔진을 사용하여 검색하려면
<search>http://www.google.com/search?q=site:
Google 도메인 서픽스 포함
Google 툴바에는
도메인 문자열을 하드코딩하는 대신
<search>http://www.google.
사용자가 선택한 텍스트 보내기맞춤 검색 버튼을 사용하면 사용자가 웹페이지에서 선택한 일반 텍스트를 보낼 수도 있습니다. 이러한 기능은 번역 서비스, Blogging 또는 메시지 응용프로그램에 유용합니다. 텍스트를 선택하면 맞춤 검색 버튼 아이콘에 작은 텍스트 아이콘이 나타납니다.
이 작업을 수행하려면
<send>http://www.google.com/search?hl=en&lr=&q=define%3A+
전송을 담당하는 맞춤 검색 버튼은 텍스트를 선택할 때 마우스 오른쪽 버튼으로 클릭하면 나타나는 브라우저 메뉴에도 표시됩니다. 변수가 있는지 여부 테스트
툴바 기능이 향상될수록 더 많은 URL 변수가 구현됩니다. 이러한 새로운 변수와의 완벽한 호환을 위해서는 다음과 같이 모든 맞춤 검색 버튼 파서에 {param_to_be_tested?use this text if the param is implemented:use this text if not}
그러면 고급 맞춤 검색 버튼 게시자가 안전하게 새 기능을 사용할 수 있으며 새 기능을 인식하지 못하는 이전 파서와의 호환성도 유지할 수 있습니다. 예를 들어, 방금 {locale} 변수가 구현되었다고 가정해 봅시다. 이와 같은 URL 템플릿을 사용하여 이전 툴바에 아무런 영향을 미치지 않도록 할 수 있습니다. <site>http://google.com/{locale??hl={locale}}</site>
툴바에서 {locale} 변수를 지원하는 경우, 이 변수는 다음과 같이 확장됩니다. <site>http://google.com/?hl=en</site> 지원하지 않는 경우 다음과 표시됩니다. <site>http://google.com/</site>
<site>http://google.com/{locale??hl={domain?{domain}:{query}}}</site>
파서에 인식되지 않는 이스케이프를 사용하면 빈 문자열로 대체됩니다. 따라서 Hell{blah}o World.는 Hello World.로 표시됩니다. 또한 '{' 또는 '}'의 중괄호 개수가 맞지 않거나 문법 오류가 있으면 전체 URL이 빈 문자열로 재설정됩니다. 멋진 아이콘 생성 방법favicon으로 사용하는 대부분의 아이콘은 맞춤 검색 버튼 아이콘으로도 사용할 수 있습니다. 여기에는 16x16 BMP, ICO, GIF 및 JPEG 이미지가 포함됩니다. base64 인코딩을 사용하여 ASCII 텍스트에 인코딩하면 됩니다. 대신 인코딩을 해주는 인터넷 사이트도 여럿 있습니다. 예를 들어, 이 사이트의 경우 "Browse(찾아보기)..." 버튼을 사용하여 인코딩할 파일을 선택한 후 "Convert the source data(원본 데이터 전환)" 버튼을 클릭하면 인코딩이 시작됩니다. Javascript 및 PHP에도 base64 인코딩을 위한 한 줄로 된 명령이 있습니다.
다음은
<icon mode="base64" type="image/x-icon">
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ONr/ODja/6en+f+np/n/p6f5/6en+f+np/n/p6f5
/6en+f+np/n/p6f5/6en+f+np/n/p6f5/zg42v84ONr/ODja/zg42v/i4v//////////////////
/////////////////////////////////////+Li//84ONr/ODja/zg42v84ONr/p6f5/+Li////
/////////////////////////////////////////+Li//+np/n/ODja/zg42v84ONr/ODja/+Li
//+np/n/4uL/////////////gYHy/4GB8v///////////+Li//+np/n/4uL//zg42v84ONr/ODja
/zg42v//////4uL//6en+f+2tv//gYHy/1pa6f9aWun/gYHy/7a2//+np/n/4uL///////84ONr/
ODja/zg42v84ONr///////////+2tv//gYHy/1pa6f84ONr/ODja/1pa6f+BgfL/trb/////////
////ODja/zg42v84ONr/ODja////////////gYHy/1pa6f84ONr/trb//7a2//84ONr/Wlrp/4GB
8v///////////zg42v84ONr/ODja/zg42v//////gYHy/1pa6f84ONr/trb/////////////trb/
/zg42v9aWun/gYHy//////84ONr/ODja/zg42v84ONr/gYHy/1pa6f84ONr/trb/////////////
//////////+2tv//ODja/1pa6f+BgfL/ODja/zg42v84ONr/ODja/zg42v84ONr/trb/////////
/////////////////////////7a2//84ONr/ODja/zg42v84ONr/ODja/zg42v84ONr/gYHy/6en
+f+np/n/p6f5/6en+f+np/n/p6f5/6en+f+np/n/gYHy/zg42v84ONr/ODja/wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD//wAA//8AAA==
</icon>
맞춤 검색 버튼 아이콘은 16x16 보다 크게 지정할 수 있기는 하지만 툴바에서 16x16 크기로 조정되며, 필요 이상으로 크게 만들면 품질이 뛰어난 이미지 편집기를 사용하여 크기를 조정하는 것만큼 멋진 아이콘을 만들 수 없습니다. 가장 이상적인 아이콘은 24비트 색상(RGB)과 8비트 알파를 사용하여 만든 다음 XP 스타일 RGBA 아이콘으로 저장한 아이콘입니다. 아이콘을 알파 투명도 기능이 있는 16x16 PNG 파일로 저장하고 이 파일을 IconWorkshop과 같은 프로그램을 사용하여 XP 스타일의 16x16 아이콘으로 전환한 후 base64로 인코딩할 수 있습니다. 원래 Windows에서 수많은 요소의 연결 없이는 PNG 파일을 지원하지 않으므로 PNG 파일을 바로 사용할 수 없습니다. 알파 채널을 사용해야 하는 이유는 각 사용자가 설치한 툴바 배경색이 모두 동일한 회색, 은색 또는 베이지가 아니기 때문입니다. Windows XP 사용자는 툴바 배경을 비롯하여 색구성표를 사용자 정의할 수 있습니다. 투명한 부분이 없는 사각형 아이콘을 만들면 이 문제를 해결할 수 있지만 아이콘으로서의 시각적 재미는 덜하다고 할 수 있습니다. GIF 이미지와 같은 단일 색상의 알파 채널은 Google 툴바나 Internet Explorer 자체의 아이콘 등의 제대로 구성된 알파 혼합 아이콘에 비해 가장자리를 보다 흐릿하고 불분명하게 표시합니다. 아이콘 및 도구 설명 자동 업데이트맞춤 검색 버튼의 또 다른 기능은 원격 서버에서 스스로의 버튼 이미지와 도구 설명을 일정 간격으로 업데이트하는 것입니다. 업데이트에는 RSS 피드가 사용됩니다. 이 기능을 사용하면 버튼을 알림 장치 또는 날씨와 같은 상태 아이콘으로 사용할 수 있습니다. 버튼은 텍스트나 아이콘으로 구성된 개별 항목의 드롭다운 메뉴도 제공합니다. 각 메뉴 항목에는 클릭할 때 마다 실행되는 자체 동적 URL을 포함할 수 있습니다. 이러한 예는 다음 섹션에서 보실 수 있습니다. RSS 피드 추가
RSS 피드는 <feed refresh-interval="1800">http://rss.cnn.com/rss/cnn_topstories.rss</feed> 이러한 업데이트 피드를 얻기 위한 프로토콜에는 Atom 1.0, Atom 0.3, RSS 2.0, RSS 1.0이 있습니다. 표준 피드라면 대개 모두 사용할 수 있습니다. 피드를 사용하여 버튼 아이콘/도구 설명 업데이트피드에서 툴바의 아이콘이나 도구 설명을 업데이트하려면 네임스페이스를 사용하여 툴바 전용 확장 기능을 RSS 또는 ATOM에 추가해야 합니다. 다음은 피드에서 가져온 무드 링 버튼의 예입니다. <?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<title>Mood ring</title>
<description>Your virtual mood ring</description>
<site>http://www.google.com/search?q=mood+ring</site>
<feed menu="false" refresh-interval="900">
http://www.example.com/custombuttons/samples/feeds/mood</feed>
</button>
</custombuttons>
실제 서버에서 위의 예를 설정하면 다음과 같은 피드 결과가 나옵니다. <?xml version='1.0'?>
<feed xmlns='http://www.w3.org/2005/Atom'
xmlns:gtb='http://toolbar.google.com/custombuttons/'>
<id>http://www.example.com/custombuttons/samples/feeds/mood</id>
<title>Mood</title>
<link href='http://www.google.com/search?q=+ring' />
<link rel='self'
href='http://www.example.com/custombuttons/samples/feeds/mood' />
<gtb:description>Bluegreen:
Inner emotions charged, somewhat relaxed</gtb:description>
<gtb:icon mode="base64" type="image/x-icon">
AAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAA
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAA
AAAAAAAAAAAGAAAAHAAAAEAAAABhAAAAcwAAAHQAAABpAAAAVQAAAD4AAAApAAAAGAAAAAoAAAAD
AAAAAQAAAAAAAAAAAAAAESZIXl4zdJvAXbHS8m3C3f9LnrrLFUtsmwILEX4AAABzAAAAYQAAAEcA
AAAqAAAAEwAAAAcAAAACAAAAACs9RTNOjrDtW6nS/53u/f+n/P//hej//2bP/P9Fq93wHGaNrxEv
O4kAAAB6AAAAXwAAADwAAAAfAAAADAAAAANihaWST6XK/0h/kcAdKCyWKTtAgVJ/kIhytNKse873
9E+w6v9RuN39SXuJpgQHCIoAAAB2AAAAUQAAACsAAAAPb6nU7mK65v9jqs76KkNPqAUICJoAAACE
AAAAaxUgJWBkrMiwsvv+//D+/v+y1NniIj1FnAAAAIgAAABcAAAALHS74PV1zPn/c835/1Oezv9N
iq7vNVRjrxUiJ5kBAgORAQICh3uLjZz3+vr1+f///4PL5/wvVmusAAAAigAAAFNyu+TPdtL8/0Cp
7v8ng8X/CFOH/ytpjv86gJ//R46z+Th6jsovVmCsd56pxNf2/f9TuPH/W7fs/ypGV6UAAAByf77Y
r02y7P9Zwfb/puH3/y+AtP8jZ5f/KWKH/0p7hP+ZrVr/zcUt/9vMKf/bzSz/tsBP/3OzrP9kl7Pp
AAAAgHGdpThatuT/0fn+//b///+V0uv/NICu/4mvfP/czjL/3M0v/9rMKP/dzzT/3c83/9vNLf/b
zS//nrWA/gAAAIMAMzMFbrrd2d/+///5////t+n6/4q6nf/czzX/3tA+/97QPf/czjP/3dA7/97R
Qv/czjD/3M4z/9DHLPoAAAB/AAAAAWShtUix5+//5v7+/5Hf7//Bvjn/3M0v/9/SSP/g1FL/39RR
/+DVWv/e0kf/3tFA/9zNL//bzCj/AAAAbwAAAAAAAAADcq7Fmpzo8f9rsL3/2ssl/93POf/f0kj/
49pu/+ffhP/q45b/49pp/97SSv/czS//yb0q4wAAAE8AAAAAAAAAAF54hhNrq77BXpCj/7+7Of/c
zjH/3tFH/+bdeP/w7cv/9PLa/+zlnf/g1VP/1so5/mBfJHsAAAArAAAAAAAAAAAAAAABa5GgIHWs
t/dymG3/3tE//9/UUv/o4Ij/9PHT//v67P/v6a3/08xY/3uMX6UAAAAuAAAAEAAAAAAAAAAAAAAA
AAAAAAKSvb9YSoWa+WyagP+wv2X/4NRO/+ngfv/m4Zf/rLeB+lpubIkAAAAlAAAADgAAAAMAAAAA
AAAAAAAAAAAAAAAAAAAAAoqvuDxkkp2gYo+c51mHkv9lk5v/Y4eNtlBfaEgAAAAWAAAACQAAAAIA
AAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAA
AADgAAAA8AEAAA==
</gtb:icon>
</feed>
위의 예는 다음과 같이 지정된 Google 맞춤 검색 버튼 네임스페이스를 사용하는 Atom 1.0 피드입니다. xmlns:gtb='http://toolbar.google.com/custombuttons/' 버튼과 함께 표시된 도구 설명을 덮어쓰려면 다음과 같이 지정하십시오. <gtb:description> new-description </gtb:description> 버튼과 함께 표시된 아이콘을 덮어쓰려면 다음과 같이 지정하십시오. <gtb:icon> icon-base64-code </gtb:icon> 복잡한 "무드" 분석 시스템을 실행시키는 PHP 스크립트는 다음과 같습니다. <?php
header('Content-type: text/xml');
switch(rand(1, 7)) {
case 1:
$icon = "amber.ico";
$desc = "Amber:\nNervous, on edge, uncertain";
break;
case 2:
$icon = "black.ico";
$desc = "Black:\nTense, stressed, working too hard";
break;
case 3:
$icon = "blue.ico";
$desc = "Blue:\nComfortable, breeze, at rest, loveable";
break;
case 4:
$icon = "bluegreen.ico";
$desc = "Bluegreen:\nHeightened inner emotional state, moderately relaxed";
break;
case 5:
$icon = "gray.ico";
$desc = "Gray:\nAnxious, ill at ease, strained";
break;
case 6:
$icon = "green.ico";
$desc = "Green:\nSteady, stable, no emotional turmoil";
brea;
case 7:
$icon = "purple.ico";
$desc = "Dark Blue:\nImpassioned, delighted, whiff of romance";
break;
}
$icon = base64_encode(file_get_contents($icon));
echo "<?xml version='1.0'?>";
echo "\n<feed xmlns='http://www.w3.org/2005/Atom' xmlns:gtb='http://toolbar.google.com/custombuttons/'>";
echo "\n<id>http://www.example.com/custombuttons/samples/feeds/mood</id>";
echo "\n<title>Mood</title>";
echo "\n<link href='http://www.google.com/search?q=$mood+ring' />";
echo "\n<link rel='self' href='http://www.example.com/custombuttons/samples/feeds/mood' />";
echo "\n<gtb:description>$desc</gtb:description>";
echo "\n<gtb:icon mode='base64' type='image/x-icon'>$icon</gtb:icon>";
echo "\n</feed>";
?>
아이콘은 스크립트와 동일한 폴더에 있어야 합니다. 피드를 사용하여 버튼 및 드롭다운 메뉴 아이콘 업데이트
맞춤 서버 기반 아이콘을 피드 드롭다운 메뉴의 개별 항목에 추가할 수도 있습니다. 다음은 날씨 버튼의 예로, 드롭다운 메뉴를 표시하는 피드로 구성되어 있으며(기본값)
<?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<title>Weather 94043</title>
<description>Weather updates for Mountain View, CA</description>
<site>http://www.google.com/search?q=weather+94043&num=1</site>
<feed refresh-interval="3600" refresh-menuitem="false">
http://www.example.com/custombuttons/samples/feeds/weather?zip=94043</feed>
</button>
</custombuttons>
다음은 드롭다운의 각 메뉴 항목 옆에 맞춤 아이콘이 표시되는 날씨 피드의 샘플로, 이해를 돕기 위해 base64로 인코딩된 아이콘은 대부분 삭제했습니다. 이러한 날씨 피드의 예는 다음 사이트에서 참조할 수 있습니다. <?xml version='1.0'?>
<feed xmlns='http://www.w3.org/2005/Atom'
xmlns:gtb='http://toolbar.google.com/custombuttons/'>
<id>http://www.example.com/custombuttons/samples/feeds/weather</id>
<title>Weather Mountain View, CA</title>
<link href='http://www.google.com/search?q=weather+94043/' />
<link rel='self'
href='http://www.example.com/custombuttons/samples/feeds/weather' />
<gtb:description>Mountain View, CA
63F Mostly Cloudy
Humidity: 48%
Wind: NW at 8 mph</gtb:description>
<gtb:icon mode='base64' type='image/x-icon'>
R0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2
tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923
... and so on...
</gtb:icon>
<entry>
<title>Today: Mostly Cloudy 65 | 50</title>
<link href='http://www.google.com/search?q=weather+94043/' />
<id>http://www.example.com/custombuttons/samples/feeds/weather/0</id>
<gtb:icon mode='base64' type='image/x-icon'>
R0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2
tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923
... and so on...
</entry>
<entry>
<title>Thu: 66 | 51</title>
<link href='http://www.google.com/search?q=weather+94043/' />
<id>http://www.example.com/custombuttons/samples/feeds/weather/1</id>
<gtb:icon mode='base64' type='image/x-icon'>
R0lGODlhKAAoAPcAAAAAAP///4WOwPT1+tDT3unr8sHG1ff5/6Wy0mZ8rGqAr3mJrJakxa+zvHSK
tcDBw1R2slBql110njBXjztmqS9OfjtekTZWhGeJuoqctklLTgJYyQJQtQ9hzhRr3BZlzBVRoS1S
... and so on...
</gtb:icon>
</entry>
<entry>
<title>Fri: 67 | 51</title>
<link href='http://www.google.com/search?q=weather+94043/' />
<id>http://www.example.com/custombuttons/samples/feeds/weather/2</id>
<gtb:icon mode='base64' type='image/x-icon'>
R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05Y
Yf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI
... and so on...
</gtb:icon>
</entry>
<entry>
<title>Sat: 67 | 50</title>
<link href='http://www.google.com/search?q=weather+94043/' />
<id>http://www.example.com/custombuttons/samples/feeds/weather/3</id>
<gtb:icon mode='base64' type='image/x-icon'>
R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05Y
Yf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI
... and so on...
</gtb:icon>
</entry>
</feed>
이 작업을 수행하는 PHP 코드는 일기예보 응답 형식을 사용합니다. <?php
// Script to convert Google xml weather interface to custom buttons AtomFeed 1.0
// Sample input at http://www.google.com/ig/api?weather=94043
// To see sample output, run this script with ?zip=94043
$zip = $_GET['zip'];
header('Content-type: text/xml');
// http://www.google.com/ig/api?weather=94043
$dom= domxml_open_file("http://www.google.com/ig/api?weather=$zip");
$xpath = xpath_new_context($dom);
// $params = $dom->documentElement->firstChild->getElementsByTagName('param');
$temp = $xpath->xpath_eval('//city/@data');
$city = $temp->nodeset[0]->value;
$icons = $xpath->xpath_eval('//current_conditions/icon/@data');
$icon_url = $icons->nodeset[0]->value;
$icon = base64_encode(file_get_contents("http://www.google.com$icon_url"));
$conditions = $xpath->xpath_eval('//current_conditions/condition/@data');
$condition = $conditions->nodeset[0]->value;
$temp = $xpath->xpath_eval('//current_conditions/temp_f/@data');
$tempf = $temp->nodeset[0]->value;
$temp = $xpath->xpath_eval('//current_conditions/humidity/@data');
$humidity = $temp->nodeset[0]->value;
$temp = $xpath->xpath_eval('//current_conditions/wind_condition/@data');
$wind = $temp->nodeset[0]->value;
echo "<?xml version='1.0'?>";
echo "\n<feed xmlns='http://www.w3.org/2005/Atom' ";
echo "xmlns:gtb='http://toolbar.google.com/custombuttons/'>";
echo "\n<id>http://www.example.com/custombuttons/samples/feeds/weather</id>";
echo "\n<title>Weather $city</title>";
echo "\n<link href='http://www.google.com/search?q=weather+$zip/' />";
echo "\n<link rel='self' href='http://www.example.com/custombuttons/";
echo "samples/feeds/weather' />";
echo "\n<gtb:description>$city\n$tempfF $condition\n$humidity\n$wind";
echo "</gtb:description>";
echo "\n<gtb:icon mode='base64' type='image/x-icon'>$icon</gtb:icon>";
$days = $xpath->xpath_eval('//forecast_conditions/day_of_week/@data');
$conditions = $xpath->xpath_eval('//forecast_conditions/condition/@data');
$icons = $xpath->xpath_eval('//forecast_conditions/icon/@data');
$highs = $xpath->xpath_eval('//forecast_conditions/high/@data');
$lows = $xpath->xpath_eval('//forecast_conditions/low/@data');
for ($i = 0; $i < count($conditions->nodeset); $i++) {
$day_of_week = $days->nodeset[$i]->value;
$condition = $conditions->nodeset[$i]->value;
$high = $highs->nodeset[$i]->value;
$low = $lows->nodeset[$i]->value;
echo "\n<entry>";
echo "\n<title>$day_of_week: $condition $high | $low</title>";
echo "\n<link href='http://www.google.com/search?q=weather+$zip/' />";
echo "\n<id>http://www.example.com/custombuttons/samples/feeds/weather/$i</id>";
$icon_url = $icons->nodeset[$i]->value;
$icon = base64_encode(file_get_contents("http://www.google.com$icon_url"));
echo "\n<gtb:icon mode='base64' type='image/x-icon'>$icon</gtb:icon>";
echo "\n</entry>";
}
echo "\n</feed>";
?>
툴바 피드에 대해서도 RSS 1.0, RSS 2.0, Atom 1.0 및 Atom 0.3 피드와 동일한 'http://toolbar.google.com/custombuttons/' 네임스페이스 및 설명 또는 아이콘 태그를 사용할 수 있습니다. 여러 언어맞춤 검색 버튼은 특정 툴바 로케일에 대해 대체 URL, 아이콘 및 텍스트를 처리할 수 있습니다. 다음은 이 작업을 수행하기 위한 두 가지 방법이며 첫 번째 방법을 권장합니다. 로케일 속성 사용
권장 방법은 원하는 로케일에 <?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<title>Wikipedia</title>
<site>http://www.wikipedia.org</site>
<site locale="fr">http://fr.wikipedia.org</site>
<site locale="es">http://es.wikipedia.org</site>
<description>The Free Encyclopedia</description>
<description locale="fr">L'encyclopdie libre</description>
<description locale="es">La enciclopedia libre</description>
</button>
</custombuttons>
XML 태그에서 현재 툴바 언어의 로케일을 직접 찾을 수 없는 경우, 위 목록의 첫 번째 태그가 기본값으로 사용됩니다. {locale} 변수 사용
다른 방법은 ISO 로케일 표현재 지원되는 툴바 로케일은 다음과 같습니다.
버튼을 호스팅할 위치버튼의 XML 파일을 호스팅하는데 사용하는 다운로드 URL은 버튼 업데이트 시 버튼의 고유 ID가 되므로 매우 중요합니다. 동일한 URL에서 버튼을 두 번 다운로드하면 툴바는 새 버튼을 추가하는 대신 이전 버튼의 변경을 제안합니다. 자세한 내용을 보려면 맞춤 검색 버튼 업데이트를 참조하십시오. Google 버튼 갤러리에 버튼 추가Google 버튼 갤러리에 버튼을 추가하는 것은 전세계에 새로운 버튼을 알리는 좋은 방법입니다. 버튼 갤러리는 XML 파일로 직접 링크되므로 XML 파일이 사전에 호스팅되어 있어야 하고, 버튼은 Google 광고문안 가이드를 준수해야 합니다. 자신의 사이트에 버튼을 만들었다면 사이트와 동일한 도메인에서 XML 파일을 호스팅해야 합니다. 버튼이 액세스하는 동일한 도메인에서 버튼을 호스팅하면 Google 버튼 갤러리에 "공식" 버튼으로 표시됩니다. 이렇게 하면 사용자들이 귀하 사이트의 공식 버튼을 보다 쉽게 찾을 수 있습니다. 이 작업을 모두 마치면 버튼 갤러리 제출양식을 작성하여 귀하의 버튼에 대한 정보를 Google에 알려주십시오. 사이트에서 버튼으로 링크설치 링크를 만들면 자신의 사이트에서 버튼을 사용할 수 있습니다. Google 툴바 4 사용자가 해당 링크를 클릭하면 버튼을 설치하라는 메시지가 나타납니다. 호환되는 툴바 버전을 사용하고 있지 않은 사용자가 해당 링크를 클릭하면 Google 툴바 다운로드 페이지로 대신 이동합니다. 개발자는 다음 URL 구문을 사용하여 설치 링크를 만들 수 있습니다. http://toolbar.google.com/buttons/add?url=url
여기서 url은 맞춤 검색 버튼의 XML 파일을 가리킵니다. 예를 들어, 다음은 Slashdot.com 버튼을 설치하는 링크입니다. <a href="http://toolbar.google.com/buttons/add?url=http://www.slashdot.org/slashdot_button.xml">Add</a> 이 링크의 레이블은 Add입니다. 사용자가 이 링크를 클릭하면 Slashdot.com 버튼이 사용자의 Google 툴바에 설치됩니다. 위의 Google URL은 기본적으로 툴바에 맞춤 검색 버튼을 설치하는 역할을 합니다. 사용자가 호환되는 툴바 버전을 사용하고 있지 않은 경우에는 해당 툴바를 설치하라는 메시지가 나타납니다. 해당 버전의 툴바가 설치되면 맞춤 검색 버튼이 자동으로 추가됩니다. 피드 트래픽 관리피드가 있는 웹 트래픽은 문제를 발생시킬 수 있습니다. 버튼에 대한 클릭수가 증가하고 트래픽이 많이 발생할 것으로 예상되면 피드를 대역폭이 낮은 서버로 지정해서는 안됩니다. 그러한 서버의 경우 다시보기 요청으로 시스템 오버로드가 발생할 수 있습니다. 맞춤 검색 버튼에는 피드에 대한 자체 다시보기 간격 속성이 있습니다. 툴바는 서버가 HTTP 헤더에 제공하는 "만료" 시간을 준수합니다. 이 설정은 버튼의 다시보기 간격에 우선합니다. 서버에 시스템 오버로드가 발생하면 "만료" 시간을 늘려 로드를 줄일 수 있습니다.. 예를 들어, 버튼을 매시간마다 다시보기하도록 설정한 경우 "만료" 시간을 매일 다시보기 하도록 재설정하면 버튼의 다시보기가 제한되어 트래픽이 현저히 줄어듭니다.
다음은 향후 한 주
<?php
$expires = gmdate("D, d M Y H:i:s", time() + 3600 * 24 * 7) . " GMT";
Header("Expires: " . $expires);
?>
다음은 서버에서 보낸 HTTP 응답의 예입니다. HTTP/1.1 200 OK Date: Thu, 05 Jan 2006 23:39:54 GMT Server: Apache/2.0.47 (Red Hat Linux) Accept-Ranges: bytes X-Powered-By: PHP/4.3.2 Expires: Thu, 12 Jan 2006 23:39:54 GMT Transfer-Encoding: chunked Content-Type: text/html참조 XML 참조맞춤 검색 버튼의 XML 파일 구조는 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<custombuttons xmlns="http://toolbar.google.com/custombuttons/">
<button>
<!-- XML elements -->
</button>
</custombuttons>
다음 XML 요소는
이스케이프 문자XML 파일 및 HTML 파일의 문자열에는 HTML 항목으로 이스케이프된 다음 세 가지 문자가 필요합니다.
변수 참조
참고사항 – 완벽하게 호환되는 변수에 대한 조건부
다음은 특정 범위에 있는 요소에 사용되는 변수 또는 이스케이프 매개변수입니다. 예를 들어,
|