Я работаю над этим проектом в java, который я сделал для себя, чтобы улучшить свои возможности программирования в Java.
Предполагается, что проект должен прочитать список первых имен из файла по одному, затем перейдите в facebook, введите имя, посмотрите, что первый результат находится под предлагаемой функцией людей (например, когда вы вводите имя, не нажимая enter он показывает вам несколько человек) и получает имя и сохраняет его.
Назовите это так, в основном, посмотрите, что предлагают людям для каждого имени просто практиковать кодирование.
Проблема с этим связана с тем, что я делаю это вручную, используя опцию robot в java. Это ужасное кодирование и ужасно неэффективное и медленное.
Я не уверен, как читать исходный код из facebook, хотя, потому что
a) вам нужно войти в систему, чтобы использовать параметр поиска, который предложил людям, то есть мне нужно было бы как-то передать куки файлы на него
б) данные формы для поиска должны быть заполнены до обновления исходного кода, так как выпадающее меню не появляется, предлагая людям до тех пор, пока не будет введено имя.
Есть ли кто-нибудь, кто может дать пример кода либо a, либо b? Как передать файлы cookie и прочитать исходный код или как ввести данные формы, а затем получить обновленный источник. Я долгое время боролся с этим и ничего не могу найти.
большое спасибо
Прежде всего, вы должны прочитать документы перед тем, как просто попробовать что-то. API-интерфейс Graph предоставляет конечную точку поиска, которая обеспечивает желаемую функциональность (если я правильно понял).
Посмотри на
Если у вас есть такой список
Mark
Sharon
Simon
Emil
вы должны иметь возможность читать строку файла в каждой строке и для каждой строки запрашивать конечную точку /search
следующим образом:
https://graph.facebook.com/search?q={firstname}&type=user&access_token={access_token}
Переменная {firstname}
должна быть заменена фактическим первым именем этой строки, а токен доступа должен быть собран из Graph Explorer, например (copy & paste):
Пример запроса (используйте HttpClient, см. Ниже) будет
https://graph.facebook.com/search?q=Mark&type=user&limit=1&access_token={access_token}
или
что приводит к
{
"data": [
{
"name": "Mark Deere",
"id": "717082841687658"
}
],
"paging": {
"next": "https://graph.facebook.com/v2.3/search?limit=1&type=user&q=Mark&offset=1&__after_id=enc_AdAYbM71uirdENZCzBE26nNu3oBItX6Q69nDF1PMP4o14FZAhPipu5U5JVGooaFZA04NraNyzj759r59gRfRdVMNyDf"
}
}
Затем вы можете проанализировать JSON (используйте Джексон, см. Ниже) и получить содержимое поля name
.
Видеть:
Использование API Facebook является одним из вариантов. Другим вариантом, который вы можете попробовать, является веб-соскабливание с помощью Selenium или Geb. Это инструменты, которые обеспечивают автоматизацию веб-браузера через API.
См. Http://www.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example
Хорошо, вам повезло - API Facebook делает именно то, что вы хотите.
Вам понадобится токен аутентификации Facebook и вам нужно будет выполнить запрос в службе пользователя в своем графическом API:
https://developers.facebook.com/docs/graph-api/reference/user
Вы можете использовать Graph Explorer (связанный из ссылки выше), чтобы попробовать и посмотреть - если ваше приложение выполняет запрос HTTP GET на http://graph.facebook.com/v2.3/Chris (или любое другое имя) и предоставить токен OAuth в заголовке, вы получите именно то, что хотите. (Для запроса Криса вы, например, получаете автора Криса Грина)