1

モバイル デバイスで Facebook SDK に問題があります。誰かが私に光を当ててくれることを願っています。

私は FB.getLoginStatus を実行している js sdk を持っており、response.status == 'connected'その後ポップアップ iframe を開きます。ポップアップ iframe は PHP sdk を使用して do を実行します$facebook->getUser()。これは、にリダイレクトした後でも、毎回 0 を返します$facebook->getLoginUrl()。これについて驚くべきことは、PHP にリダイレクトするときに$loginUrlログイン ダイアログが表示されず、指定された redirect_uri に戻るだけで、$facebook->getUser()まだ 0 であり$facebook->api('/me')、例外をキャッチしようとすると、An active access token must be と表示されることです。現在のユーザーに関する情報を照会するために使用されます

試しましたが$facebook->getAccessToken()、まだ動作しません。また、JS SDKresponse.authResponse.accessTokenを PHP に戻して に入れてみましたが$facebook->setAccessToken()、どちらも機能しません。一体何が起こっているのですか?デスクトップブラウザではこのような問題はありません.モバイルデバイスのみです..

明確にするために、これは私がテストに使用しているスクリプトです。

<?php

require_once(__DIR__ . '/../facebook-sdk-3.2.2/facebook.php');  

$facebook = new Facebook(array(  
    'appId'  => '[private]',
    'secret' => '[private]',
'cookie' => true
));

$redirectUri = 'https://www.[private].com/ios-test.php';

$loginUrl = $facebook->getLoginURL(array(
    'scope' => 'publish_stream,publish_actions,email',
    'redirect_uri' => $redirectUri
));

echo '<a href="'.$loginUrl.'" target="_top">'.$loginUrl.'</a><br />';

var_dump($facebook->getUser());

exit(__FILE__.__LINE__);

ただし、iPhone の Facebook アプリでテストすると、ユーザー ID は 0 で、 をクリックする$loginUrlと、認証ダイアログは表示されませんが、ユーザー ID が 0 のままの同じページに戻ります。Android ネイティブ ブラウザーでも同じことが起こります。 . iPhone で Chrome を使用すると、正しい Facebook ユーザー ID が表示されます。

私は本当にこれについて助けが必要です.4時間以上この壁に頭をぶつけてインターネットを探しました.助けになるものは何もありません. スタック オーバーフローを試すように勧められた人もいましたが、それが正しいことを願っています。

4

1 に答える 1