0

私はこのエラーがここで噛まれて死んでいることを知っており、私の問題をよりよく理解するためにすべてを読んでいます。

しかし、私の問題は少し異なり、どこを見ればよいか誰かが私に良い提案をしてくれるのだろうか.

wordpress + wordpress ソーシャルログインを使用しています。このプラグインはユーザーを認証し、名前/年齢/メール/fbID/fbProfilePic を DB に保存します。

私のウェブサイトには、Facebook で登録したユーザーがクリックして自分のウォールにメッセージを投稿できる小さな機能があります。

私のコードは次のようになります。

<?php
//IF user is registered via facebook, when he clicks INTERESTED message will appear on his/her wall to spread the news

  $user = get_user_meta($current_user->ID,'Facebook',true);

    if ($user && $_GET['commentstab'] == 1 && !$_POST['delmycom']) {



      require ('Facebook/facebook.php');

      //Access details
      $facebook = new Facebook(array(
        'appId'  => 'XXX',
        'secret' => 'XXX'
        //'cookie' => true
      ));


          //try {
              $params = array(
                  'message'       =>  "Hurray! This works :)",
                  'name'          =>  "This is my title",
                  'caption'       =>  "My Caption",
                  'description'   =>  "Some Description...",
                  'link'          =>  "http://stackoverflow.com",
                  'picture'       =>  "http://i.imgur.com/VUBz8.png",
              );
              $post = $facebook->api("/$user/feed","POST",$params);

              echo "Your post was successfully posted to UID: $user";
          //} //try

          //catch (FacebookApiException $e) {
          //    $result = $e->getResult();
          //} //catch


    } //master if
?>

このアクションを実行するには、ユーザーからの publish_stream 許可が必要であるというさまざまなトピックを読みました。しかし、ユーザー情報を自分の DB に個別に保存しているため、このストリームの公開許可を取得するにはどうすればよいでしょうか? ある種のアクセス トークンを保存するように wordpress プラグインを変更する必要がありますか? このトークンを利用してウォールに投稿しますか?

4

1 に答える 1

2
  1. publish_stream パーミッションで loginurl を生成します
  2. ユーザーが許可を得てログインしていない場合は、ログインしていることを確認する必要があります
  3. ユーザーを適切なページにリダイレクトする

あなたはこのようにすることができます、

<?php
include_once("facebook.php"); 
    $facebook = new Facebook(array(
      'appId'  => APP_ID,
      'secret' => APP_SECRET,
      'cookie' => true,
    ));
    $user = $facebook->getUser();



    if ($user) {
      try {
        // Get the user profile data you have permission to view
        $user_profile = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        $user = null;
      }
    } else {
        $loginUrl = $facebook->getLoginUrl(array('scope' =>'publish_stream','redirect_uri'=>'example.com'));
      die('<script> top.location.href="'.$loginUrl.'";</script>');
    }

    $params = array(
                  'message'       =>  "Hurray! This works :)",
                  'name'          =>  "This is my title",
                  'caption'       =>  "My Caption",
                  'description'   =>  "Some Description...",
                  'link'          =>  "http://stackoverflow.com",
                  'picture'       =>  "http://i.imgur.com/VUBz8.png",
              );
    $post = $facebook->api("/$user/feed","POST",$params); 
?>
于 2012-08-30T12:26:31.627 に答える