Google 工具栏 API - 添加 RSS 联合供稿

来源:百度文库 编辑:神马文学网 时间:2024/04/28 01:19:47
添加 RSS 联合供稿
RSS 联合供稿使用 元素。以下是 CNN 新闻联合供稿的示例:
http://rss.cnn.com/rss/cnn_topstories.rss
获取这些更新联合供稿的协议为 Atom 1.0、Atom 0.3、RSS 2.0 或 RSS 1.0。标准联合供稿通常都会正常运行。
要通过联合供稿更新工具栏上的图标或工具提示说明,您需要将特定工具栏扩展件添加到使用名称空间的 RSS 或 ATOM。下面是从联合供稿中提取的心情圈圈按钮的示例:

注意,它指定 menu="false" 表示此联合供稿仅用于更新图标和工具提示,而不能填充子项目的下拉菜单。
如果在实际的服务器上安装了它,联合供稿输出则如下所示:
http://www.example.com/custombuttons/samples/feeds/moodMoodBluegreen:Inner emotions charged, somewhat relaxedAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAAAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAHAAAAEAAAABhAAAAcwAAAHQAAABpAAAAVQAAAD4AAAApAAAAGAAAAAoAAAADAAAAAQAAAAAAAAAAAAAAESZIXl4zdJvAXbHS8m3C3f9LnrrLFUtsmwILEX4AAABzAAAAYQAAAEcAAAAqAAAAEwAAAAcAAAACAAAAACs9RTNOjrDtW6nS/53u/f+n/P//hej//2bP/P9Fq93wHGaNrxEvO4kAAAB6AAAAXwAAADwAAAAfAAAADAAAAANihaWST6XK/0h/kcAdKCyWKTtAgVJ/kIhytNKse8739E+w6v9RuN39SXuJpgQHCIoAAAB2AAAAUQAAACsAAAAPb6nU7mK65v9jqs76KkNPqAUICJoAAACEAAAAaxUgJWBkrMiwsvv+//D+/v+y1NniIj1FnAAAAIgAAABcAAAALHS74PV1zPn/c835/1Oezv9Niq7vNVRjrxUiJ5kBAgORAQICh3uLjZz3+vr1+f///4PL5/wvVmusAAAAigAAAFNyu+TPdtL8/0Cp7v8ng8X/CFOH/ytpjv86gJ//R46z+Th6jsovVmCsd56pxNf2/f9TuPH/W7fs/ypGV6UAAAByf77Yr02y7P9Zwfb/puH3/y+AtP8jZ5f/KWKH/0p7hP+ZrVr/zcUt/9vMKf/bzSz/tsBP/3OzrP9kl7PpAAAAgHGdpThatuT/0fn+//b///+V0uv/NICu/4mvfP/czjL/3M0v/9rMKP/dzzT/3c83/9vNLf/bzS//nrWA/gAAAIMAMzMFbrrd2d/+///5////t+n6/4q6nf/czzX/3tA+/97QPf/czjP/3dA7/97RQv/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/czjH/3tFH/+bdeP/w7cv/9PLa/+zlnf/g1VP/1so5/mBfJHsAAAArAAAAAAAAAAAAAAABa5GgIHWst/dymG3/3tE//9/UUv/o4Ij/9PHT//v67P/v6a3/08xY/3uMX6UAAAAuAAAAEAAAAAAAAAAAAAAAAAAAAAKSvb9YSoWa+WyagP+wv2X/4NRO/+ngfv/m4Zf/rLeB+lpubIkAAAAlAAAADgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAoqvuDxkkp2gYo+c51mHkv9lk5v/Y4eNtlBfaEgAAAAWAAAACQAAAAIAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAAAADgAAAA8AEAAA==
以上示例是 Atom 1.0 联合供稿,包含的 Google 自定义按钮名称空间指定为:
xmlns:gtb=‘http://toolbar.google.com/custombuttons/‘
要覆盖随按钮出现的工具提示,请指定:
new-description
要覆盖随按钮出现的图标,请指定:
icon-base64-code
控制这种复杂的“心情”分析系统的 PHP 脚本如下所示:
";echo "\n";echo "\nhttp://www.example.com/custombuttons/samples/feeds/mood";echo "\nMood";echo "\n";echo "\n";echo "\n$desc";echo "\n$icon";echo "\n";?>
图标应该和脚本位于同一文件夹中。
使用联合供稿更新按钮和下拉菜单图标
您还可以将自定义服务器图标添加到联合供稿下拉菜单上的单个项目上。下面是天气按钮示例,它具有包含下拉菜单(默认值)的联合供稿,但是还可以指定 refresh-menuitem="false" 隐藏随时连接到服务器的刷新菜单项目。这样可以提供更加简洁的外观。
 

 
下面是天气联合供稿外观的示例,在下拉菜单中各个菜单项目旁边都有自定义图标(为简洁起见,大多数图标已经删除 base64 编码的资料)。基于以上示例,它可见于:http://www.example.com/custombuttons/samples/feeds/weather/?zip=94043
http://www.example.com/custombuttons/samples/feeds/weatherWeather Mountain View, CAMountain View, CA63F Mostly CloudyHumidity: 48%Wind: NW at 8 mphR0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923... and so on...Today: Mostly Cloudy 65 | 50http://www.example.com/custombuttons/samples/feeds/weather/0R0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923... and so on...Thu: 66 | 51http://www.example.com/custombuttons/samples/feeds/weather/1R0lGODlhKAAoAPcAAAAAAP///4WOwPT1+tDT3unr8sHG1ff5/6Wy0mZ8rGqAr3mJrJakxa+zvHSKtcDBw1R2slBql110njBXjztmqS9OfjtekTZWhGeJuoqctklLTgJYyQJQtQ9hzhRr3BZlzBVRoS1S... and so on...Fri: 67 | 51http://www.example.com/custombuttons/samples/feeds/weather/2R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05YYf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI... and so on...Sat: 67 | 50http://www.example.com/custombuttons/samples/feeds/weather/3R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05YYf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI... and so on...
为此,PHP 代码使用天气预报回复格式。
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 "";echo "\n";echo "\nhttp://www.example.com/custombuttons/samples/feeds/weather";echo "\nWeather $city";echo "\n";echo "\n";echo "\n$city\n$tempfF $condition\n$humidity\n$wind";echo "";echo "\n$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";echo "\n$day_of_week: $condition $high | $low";echo "\n";echo "\nhttp://www.example.com/custombuttons/samples/feeds/weather/$i";$icon_url = $icons->nodeset[$i]->value;$icon = base64_encode(file_get_contents("http://www.google.com$icon_url"));echo "\n$icon";echo "\n";}echo "\n";?>
您还可以使用相同的 http://toolbar.google.com/custombuttons/ 名称空间和说明或者 RSS 1.0、RSS 2.0、Atom 1.0 及 Atom 0.3 联合供稿中的图标标记用于工具栏联合供稿。