Ответ 1
нет (простой/очевидной) возможности получить реальный идентификатор пользователя на основе идентификатора пользователя в приложении.
С обновлением с Facebook Graph API версии 1.0 до версии 2.0, Facebook использует "Идентификаторы пользователей с областью приложения", поэтому я больше не вижу "оригинальный" идентификатор пользователя в моих приложениях.
Я всегда использовал обновления в реальном времени и графические API-вызовы вроде " https://graph.facebook.com/{postId}/comments", чтобы проанализировать активность пользователя на странице Facebook, где было приложение. Но поскольку эти данные содержат исходный идентификатор пользователя, я больше не могу сопоставлять действия с моими зарегистрированными пользователями!
Итак, есть ли способ получить исходный идентификатор пользователя Facebook из идентификатора пользователя в приложении? Или наоборот?
EDIT:
В результате я получил идентификаторы приложений для всех моих пользователей, используя описанный здесь метод API: qaru.site/info/165756/... и сохранил их в моей базе данных в дополнение к старый идентификатор. Затем, всякий раз, когда прибыл RTU, для "старых пользователей" я хотел бы проверить, у какого пользователя есть этот идентификатор приложения и обработать его. По крайней мере, Facebook удалось исправить ошибку, упомянутую в комментариях (Получить идентификатор пользователя Facebook из идентификатора пользователя в приложении) за несколько дней до того, как API v1.0 устарел, поэтому для новых пользователей моих приложений это работает как шарм. До сих пор...
нет (простой/очевидной) возможности получить реальный идентификатор пользователя на основе идентификатора пользователя в приложении.
Из вашего разговора между Johannes N.
Могу ли я получить идентификаторы приложений (для приложений, которыми я владею) через оригинального пользователя Я бы. это тоже поможет.
Чтобы получить идентификаторы приложений с исходным идентификатором пользователя, можно легко выполнить с помощью:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&access_token=ACCESS_TOKEN
Yo может использовать параметр fields для возврата только id:
Преимущество ids вместо id, потому что вы можете запросить несколько идентификаторов:
* www можно удалить, чтобы свести к минимуму количество символов.
Получить идентификаторы приложений из имени пользователя можно также легко:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN
Вы не можете перейти от верного к реальному. Лучше всего конвертировать все из них в область охвата. Это довольно легко:
https://graph.facebook.com/?ids=REAL_ID&access_token=APP_ID|APP_SECRET
Вот простой код Ruby, который делает это:
require 'open-uri'
require 'json'
json = JSON.load(open("https://graph.facebook.com/?ids=#{real_id}&access_token=#{FACEBOOK_APP_ID}|#{FACEBOOK_APP_SECRET}"))
scoped_id = /app_scoped_user_id\/(\d+)\//.match(json[real_id.to_s]['link'])[1]
Я обнаружил, что веб-сайт может помочь вам получить идентификатор пользователя facebook с идентификатором области приложения.
Здесь http://izitools.com/en/tool/get-facebook-id-from-scoped-id
есть грязный взломать исходный идентификатор пользователя
http://graph.facebook.com/app-scoped-id возвращает общедоступную информацию в facebook следующим образом: { "id": "app-scoped-id", "first_name": "xxxx", "мужской пол", "last_name": "yyyy", "link": " https://www.facebook.com/zzzz", "locale": "en_US", "name": "xxxx yyyy", "username": "zzzz" }
Затем вы создаете другой вызов api для графического интерфейса с именем пользователя http://graph.facebook.com/zzzz
Это вернет исходный идентификатор facebook и другую общедоступную информацию, а не app-scoped-id
https://www.facebook.com/app_scoped_user_id/670839443061245
спросите себя, почему вы получаете от этого имени пользователя все пользователи.
{
"id": "670839443061245",
"first_name": "Lucas",
"gender": "male",
"last_name": "Ou-Yang",
"link": "https://www.facebook.com/L",
"locale": "en_US",
"name": "Lucas Ou-Yang",
"username": "L"
}