So che questa è una vecchia domanda, ma se qualcun altro affronta questo tipo di problema, (voglio dire un po 'di googling mi ha portato qui per una ragione).
La finestra di condivisione di Facebook non ha bisogno di un login per condividere.
https://developers.facebook.com/docs/sharing/reference/share-dialog
Di solito si utilizza il js sdk, in questo modo:
FB.ui({
method: 'share',
href: 'https://developers.facebook.com/docs/',
}, function(response){});
Unfortunally questo non funzionerà in Chrome su iOS, ma per fortuna c'è una soluzione per questo (Se si utilizza php);
$isIosChrome = (strpos($_SERVER['HTTP_USER_AGENT'], 'CriOS') !== false) ? true : false;
if ($isIosChrome == true) {
$iosChromeShareLink = 'https://www.facebook.com/dialog/share
?app_id='.$settings['facebook']['appId'].'
&display=popup
&href='.urlencode($THE_SITE_U_WANT_TO_SHARE).'
&redirect_uri='.urlencode($settings['facebook']['redirectUrl']);
}
Quindi, fondamentalmente, è necessario rilevare se l'utente utilizza Chrome su iOS e quindi sostituire il vostro elemento di attivazione per la funzione del FB.ui con la -LINK "FB sharer". Perché non vuoi usare il condivisore tutto il tempo, solo quando js sdk non funziona.
E poiché ogni sito su Internet è trattato come OG-oggetti da facebook, è sufficiente assicurarsi che il proprio sito contenga i tag OG corretti.
Ma se l'app (o il sito) di Facebook richiede l'accesso per altri scopi e si affronta il messaggio "browser non supportato" da chrome, è possibile accedere ai propri utenti tramite il login di reindirizzamento php (Questo richiede l'uso di php sdk) .
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
/**
*FIXES CHROME ON IOS BUG
*
*
*/
$isIosChrome = (strpos($_SERVER['HTTP_USER_AGENT'], 'CriOS') !== false) ? true : false;
if ($isIosChrome == true) {
FacebookSession::setDefaultApplication(
$settings['facebook']['appId'],
$settings['facebook']['secret']
);
$helper = new FacebookRedirectLoginHelper($settings['facebook']['redirectUrl']);
$session = $helper->getSessionFromRedirect();
if ($session) {
//var_dump($session);
$user_profile = (new FacebookRequest(
$session, 'GET', '/me'
))->execute()->getGraphObject(GraphUser::className());
$uid=$user_profile->getID;
echo $uid;
}
else{
$loginUrl = $helper->getLoginUrl();
header("location:".$loginUrl);
exit;
}
}
Controllare [qui] [1] come ho risolto questo problema! [1]: http://stackoverflow.com/a/32394517/1435014 – apandey846