[WordPress] ワードプレス新しい php sdk facebook を含める

スポンサーリンク

質問

インストール次のプラグインをワードプレス 4.1 がある:

  • iThemes セキュリティ
  • ワードプレスの SEO

関数 facebook sdk 携わって

このコードです:

//Footer
add_action('wp_footer', 'my_footer');
function my_footer() {
    $post_to_check = get_post(get_the_ID());
    if ( is_singular() && has_shortcode( $post_to_check->post_content, 'myshortcode' ) ) {
?>
<script>
var DEBUG = true;

jQuery(document).ready(function($){
    $.ajax({
        type : "POST",
        url : "index.php",
        data : { action : "value" },
        success : function(response){
            // the server has finished executing PHP and has returned something, so display it!
            if(DEBUG){ console.log('AJAX done...'); }
        }
    });
});
</script>
<?php
    }
}

//ajax
add_action('init', 'my_request');
function my_request() {
    if ( isset($_POST['action']) && $_POST['action'] == 'value' ) {

        session_start();

        require_once __DIR__ . "/sdk/autoload.php";

        use Facebook\FacebookSession;
        use Facebook\FacebookRequest;
        use Facebook\GraphUser;
        use Facebook\FacebookRedirectLoginHelper;
        use Facebook\FacebookSDKException;

        $app_id     = getAppId();
        $app_secret = getAppSecret();
        $rdr_fb_url = curPageURL();
        $required_scope = 'public_profile, email';

        if(empty($app_id) || empty($app_secret))
            exit('Error.');

        FacebookSession::setDefaultApplication($app_id , $app_secret);

        $helper = new FacebookRedirectLoginHelper($rdr_fb_url);

        try {
          $session = $helper->getSessionFromRedirect();
        } catch(FacebookRequestException $ex) {
            // When Facebook returns an error
            die(" Error : " . $ex->getMessage());
        } catch(\Exception $ex) {
            // When validation fails or other local issues
            die(" Error : " . $ex->getMessage());
        }

        var_dump($session);

        if ($session){
            $user_profile = (new FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(GraphUser::className());
            echo 'Hi'.$user_profile->getName();

        }else{
            //display login url
            $login_url = $helper->getLoginUrl( array( 'scope' => $required_scope ) );
        }

?>
<div class="login">
    <a href="<?php echo $login_url; ?>">Login</a>
</div>
<?php
    exit();
  }
}

ワードプレスの外これを使用する場合に正常に動作します。で wp var_dump($session);常に null を取得します。(エラーは指定された)後でさえも、アプリケーションの条項に同意します。それは、まるで彼はない url にコードを得ることができる

私もが、何も、プラグインを無効にしてみました

私は php が必要、javascript を使用して私に教えてください

申し訳ありません私の悪い英語のため: P

編集: パーマリンクを使用して: http://www.myste.com/%year%/%monthnum%/%postname%/

問題は facebook get を隠す書き換えルールだと思います


答え

解決:

function my_footer() {

で、ajax 呼び出しの外部のコードを入力

http://stackoverflow.com/questions/28100820/wordpress-include-new-php-sdk-facebook

スポンサーリンク

Leave a Reply