я пытался решить эту проблему, я уже спрашивал здесь, но не получил никакого ответа, я гуглил свою проблему во всех смыслах, но я просто не могу ее решить.Мне просто нужно знать, как я могу получить действительный URL-адрес при отправке в FaceBook своего URL-адреса. Я хочу, чтобы FaceBook перенаправил моего пользователя обратно: site_url(‘main/verification’)
(я работаю с codeIgniter)
, поэтому мой loginUrl выглядит такэто:
https://www.facebook.com/dialog/oauth?client_id=248650435198175.&.redirect_uri=http%.3A%.2F%.2Flocalhost%.2FSocialCart%.2Findex.php%.3F%.2Fmain%.2Fverification&state=004dc1ebe9e081b2222408434af7dbd5&scope=email
(УДАЛИТЬ ВСЕ ТОЧКИ ПОСЛЕ ВСЕХ%)
Как только я нажимаю на ссылку, я перенаправляюсь в FaceBook, но затем я перенаправляюсь на свою главнуюстраница (а не главная / проверка) с этим URL в моем браузере:
http://localhost/SocialCart/index.php?%.2.Fmain%.2.Fverification&state=0e3ae6ca3e7869f618d65ad&code=AQCwwZUevy-SfeNLgUC55Rg0bi7noi_oczwt_2TmR-DobC8xc6STYIW82VLi23fzf9d-J5tdufdOLpc#_=_
Хорошо, я удалил часть этого длинного кода, но вы видите, что я получаю, после моих index.php?
%.2.F вместо /
, а & должно быть?(Я думаю)
(убрать точки '.' Между каждыми% 2 и 2F)
Как можно это исправить, пожалуйста?ПОЧЕМУ мой redirectUrl только частично декодируется моим браузером?кажется, что он декодируется до index.php, а затем перестает заменять все «% .2F» на «/» (еще раз без смысла после%). Думаю, мне понадобятся функции перезаписи url или urlencode ()но дело в том, что хорошо интерпретируется только половина URL, а не все остальные.Я действительно сейчас не знаю, что делать ..
Наверное, мне нужно проверить функцию getLoginUrl (), которая отвечает за получение части URL-адреса входа, который перенаправляет пользователя сfb на мой веб-сайт, если URL-адрес хорошо закодирован, но я попробовал все, и, похоже, ничего не работает.
Вот функция (которую вы можете найти в любом base_facebook.php графа API php.):
/**
* Get a Login URL for use with redirects. By default, full page redirect is
* assumed. If you are using the generated URL with a window.open() call in
* JavaScript, you can pass in display=popup as part of the $params.
*
* The parameters:
* - redirect_uri: the url to go to after a successful login
* - scope: comma separated list of requested extended perms
*
* @param array $params Provide custom parameters
* @return string The URL for the login flow
*/
public function getLoginUrl($params=array()) {
$this->establishCSRFTokenState();
$currentUrl = $this->getCurrentUrl();
// if 'scope' is passed as an array, convert to comma separated list
$scopeParams = isset($params['scope']) ? $params['scope'] : null;
if ($scopeParams && is_array($scopeParams)) {
$params['scope'] = implode(',', $scopeParams);
}
return $this->getUrl(
'www',
'dialog/oauth',
array_merge(array(
'client_id' => $this->getAppId(),
'redirect_uri' => site_url(), // possibly overwritten
'state' => $this->state),
$params));
}
Спасибо