Разумеется проще через UI, но в нашем случае рассмотрим процедуру поиска публичного профиля с точки зрения использования API. Требования: аккаунт Google, браузер, блокнот и немного терпения.
Открываем в браузере консоль API. Создаем новый проект.
Активируем Google+ API.
Переходим к параметрам доступа к проекту (вкладка API Access), копируем ключ проекта (API key).
Открываем блокнот, рисуем интерфейс: пара кнопок, текстовое поле и блочный элемент для отображения результатов.
Расставим элементы на свои места с помощью CSS. Вторую кнопку пока спрячем - будем отображать, если количество результатов запроса превысит количество отображенных.
Пишем скрипт. Не забываем вставить ключ проекта, скопированный ранее, в переменную API_KEY.
С максимальным количеством результатов запроса (переменной MAX_RESULTS) можно экспериментировать в диапазоне от 1 до 20.
Сохраняем, открываем в браузере, тестируем.
We are the champions :). Если терпение еще не закончилось - добавляем AJAX Style.
p.s. Полученное приложение поддерживается "современными" браузерами.
Открываем в браузере консоль API. Создаем новый проект.
Активируем Google+ API.
Переходим к параметрам доступа к проекту (вкладка API Access), копируем ключ проекта (API key).
Открываем блокнот, рисуем интерфейс: пара кнопок, текстовое поле и блочный элемент для отображения результатов.
<html> <head> <title>Plus People Finder</title> </head> <body> <button onclick="getPlus()">Поиск</button> <input id="txt" type="text" onkeyup="onKeyup(event)" /> <div id="pp"></div> <button id="btn">Еще результаты</button> </body> </html>
Расставим элементы на свои места с помощью CSS. Вторую кнопку пока спрячем - будем отображать, если количество результатов запроса превысит количество отображенных.
<html> <head> <title>Plus People Finder</title> <style type="text/css"> input{width:100%; height:30px; margin-top:1px; font:normal 18px sans-serif;} .pp{width:100%; height:40px; border-top:1px solid #000; border-bottom:1px solid #000; margin:1px; background-color:#fff;} .pp:hover{background-color:#ddd;} img{width:40px; height:40px;} a{font:bold 18px sans-serif; margin-left:10px; vertical-align:top; text-decoration: none; outline: 0;} a:hover{text-decoration:underline; color:#f00;} button{width:100%; height:30px; text-align:center; font:bold 18px sans-serif; cursor:pointer;} #btn{display:none;} </style> </head> <body> <button onclick="getPlus()">Поиск</button> <input id="txt" type="text" onkeyup="onKeyup(event)" /> <div id="pp"></div> <button id="btn">Еще результаты</button> </body> </html>
Пишем скрипт. Не забываем вставить ключ проекта, скопированный ранее, в переменную API_KEY.
С максимальным количеством результатов запроса (переменной MAX_RESULTS) можно экспериментировать в диапазоне от 1 до 20.
<html> <head> <title>Plus People Finder</title> <style type="text/css"> input{width:100%; height:30px; margin-top:1px; font:normal 18px sans-serif;} .pp{width:100%; height:40px; border-top:1px solid #000; border-bottom:1px solid #000; margin:1px; background-color:#fff;} .pp:hover{background-color:#ddd;} img{width:40px; height:40px;} a{font:bold 18px sans-serif; margin-left:10px; vertical-align:top; text-decoration: none; outline: 0;} a:hover{text-decoration:underline; color:#f00;} button{width:100%; height:30px; text-align:center; font:bold 18px sans-serif; cursor:pointer;} #btn{display:none;} </style> <script> function getPlus(pageToken) { var name = document.getElementById('txt').value; var pp = document.getElementById('pp'); var btn = document.getElementById('btn'); if (name == '') { clearDiv(pp); btn.style.display = 'none'; return; } if(!pageToken) clearDiv(pp); var API_KEY = 'Ключ_Вашего_Проекта'; var MAX_RESULTS = 20; var requestString = 'https://www.googleapis.com/plus/v1/people?query=' + name + '&maxResults=' + MAX_RESULTS + '&fields=items(displayName%2Cimage%2Curl)%2CnextPageToken&key=' + API_KEY; if (pageToken) requestString += '&pageToken=' + pageToken; var xhr = new XMLHttpRequest(); xhr.open('GET', requestString, true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function() { if(xhr.readyState != 4 || xhr.status != 200) return; clearTimeout(timeout); var res = JSON.parse(xhr.responseText); for (var i=0; i<res.items.length; i++) { var div = pp.appendChild(document.createElement("div")); div.className = 'pp'; var img = div.appendChild(document.createElement("img")); img.src = res.items[i].image.url; var anc = div.appendChild(document.createElement("a")); anc.className = 'anc'; anc.href = res.items[i].url; anc.target = '_blank'; anc.appendChild(document.createTextNode(res.items[i].displayName)); } if(res.items.length == MAX_RESULTS) { btn.style.display = 'block'; btn.onclick = function() { getPlus(res.nextPageToken) }; } else { btn.style.display = 'none'; } } xhr.send(null); var timeout = setTimeout( function(){ xhr.abort() }, 5000); } function onKeyup(e) { var keyCode = e.which || e.keyCode; if(keyCode == 13) getPlus(); } function clearDiv(div) { while(div.lastChild) div.removeChild(div.lastChild); } </script> </head> <body> <button onclick="getPlus()">Поиск</button> <input id="txt" type="text" onkeyup="onKeyup(event)" /> <div id="pp"></div> <button id="btn">Еще результаты</button> </body> </html>
Сохраняем, открываем в браузере, тестируем.
We are the champions :). Если терпение еще не закончилось - добавляем AJAX Style.
p.s. Полученное приложение поддерживается "современными" браузерами.
Комментариев нет:
Отправить комментарий
Комментарий будет опубликован после модерации