Как сопоставить зарегистрированного пользователя Facebook через API Javascript с его URL - PullRequest
0 голосов
/ 02 мая 2019

Здравствуйте, коллеги-разработчики.

В течение последних нескольких недель я боролся со следующим.

Я хочу аутентифицировать зарегистрированного пользователя с помощью FB, URL его профиля.

Simple.Но получить его автоматически невозможно.

Когда пользователь входит в систему, генерируется FBID, при использовании https://www.facebook.com/?profile_id=xxxxxxxxxxxxxxx он перенаправляется в профиль пользователя, https://www.facebook.com/username - Tada!Точность данных составляет 100%.

Я пытался получить это имя пользователя FB, но через граф не допускается без разрешения, которое просто работает как profile_id - это не фактическое имя пользователя.Я полагаю, что со всем Кембриджским материалом это было удалено.

Моя следующая задача была попытка сделать запрос CURL - я написал функцию, которая получает последний URL перенаправления.Это не удается из-за того, что Facebook отвечает как «неподдерживаемый браузер».

Я попытался передать различные типы заголовков (User Agent, Canonical, SSL), но ни один из них не работает.Точность данных снижена практически до 0%.

Мой последний вариант заключался в том, чтобы использовать плагин комментариев в плагине комментариев - прямо рядом с текстовой областью, я вижу ссылку на свой профиль - именно так, как я хочуЭто.То, что я пытался сделать, это получить источник iframe и посмотреть, где отображается имя пользователя FB, и передать его обратно в мою базу данных.Я бы тогда сопоставил FBID с этим, и у меня есть то, что я хочу.Точность данных с помощью этого метода будет где-то в диапазоне 75% / 80%.

Но это тоже не сработало.Несколько причин: 1 - FB Iframe, похоже, не поддерживает постоянную привязку класса к элементам - поэтому я боюсь, что это не продлится долго.2 - у самого iframe нет идентификатора, чтобы иметь Javascript console.log, по крайней мере, содержимое.3- время очень нерегулярное, хотя это не является реальной проблемой, поскольку я мог бы запустить функцию тайм-аута, скажем, через 10 секунд после входа пользователя в систему, но я имею в виду следующее: сначала мне нужно получить FBID, чтобысопоставьте его с именем пользователя FB.Это не стабильный, а довольно хрупкий способ.Точность данных снижена до 50% и менее стабильна.

Так что я застрял, я не знаю, как я мог бы сопоставить FBID с именем пользователя без графика FB.

Мой очень очень оченьПоследний вариант - это поле для комментариев, в котором пользователю необходимо ввести уникальный код, сгенерированный для него / нее, - тогда это сообщение будет получено, а затем я проверю его вручную, будет проверена учетная запись.

Но этобыло бы болезненно для разработчиков, я хочу, чтобы это делалось автоматически.Я чувствую, что есть выход, но я застрял.

Кто-нибудь осмелится подсказать, как мне этого добиться?Даже если это далеко не так (даже если это происходит с планеты Canto Bight) ....

* Я кланяюсь * Я говорю спасибо!

1 Ответ

1 голос
/ 03 мая 2019

Боюсь, нет пути. username доступ исчез, было бы бессмысленно реализовывать этот перенаправленный URL, если бы по-прежнему можно было получить доступ к реальному. Вы можете разрешить пользователям вводить свои URL-адреса только по своему усмотрению, но API для их получения не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...