【问题标题】:wordpress facebook sdk publish_actionswordpress facebook sdk publish_actions
【发布时间】:2016-01-31 21:23:56
【问题描述】:

我想制作 WordPress 插件或者如果已经存在请告诉我 如果用户在我的 WordPress 网站上发布 15 个帖子,我希望在他的 Facebook 墙上发布带有图像和级别的帖子,而不是其他级别的帖子

  1. 登录 WordPress 扔 Facebook
  2. 保存访问令牌以使用它离线发布
  3. 在保存帖子时,如果数量相等,则将帖子发布给用户 时间线

我做了第一步,这就是结果

但没有任何东西发布到时间线,代码是

<?php
session_start();
require_once 'facebook/autoload.php';
$fb = new Facebook\Facebook([
  'app_id' => 'xxxxxx',
  'app_secret' => 'xxxxxxxxx',
  'default_graph_version' => 'v2.5',
]);

$helper = $fb->getCanvasHelper();
$permissions = ['email', 'publish_actions']; // optional
try {
    if (isset($_SESSION['facebook_access_token'])) {
        $accessToken = $_SESSION['facebook_access_token'];
    } else {
        $accessToken = $helper->getAccessToken();
    }
} catch(Facebook\Exceptions\FacebookResponseException $e) {
    // When Graph returns an error
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    // When validation fails or other local issues
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
 }

if (isset($accessToken)) {
    if (isset($_SESSION['facebook_access_token'])) {
        $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
    } else {
        $_SESSION['facebook_access_token'] = (string) $accessToken;
        // OAuth 2.0 client handler
        $oAuth2Client = $fb->getOAuth2Client();
        // Exchanges a short-lived access token for a long-lived one
        $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
        $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
        $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
    }


    // validating the access token
    try {
        $request = $fb->get('/me');
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        if ($e->getCode() == 190) {
            unset($_SESSION['facebook_access_token']);
            $helper = $fb->getRedirectLoginHelper();
            $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/xxxxxxx/', $permissions);
            echo "<script>window.top.location.href='".$loginUrl."'</script>";
            exit;
        }
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }

    // posting on user timeline using publish_actins permission
    try {
        // message must come from the user-end
        $data = ['message' => 'testing...'];
        $request = $fb->post('/me/feed', $data);
        $response = $request->getGraphEdge()->asArray;
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }
    echo $response['id'];
    // Now you can redirect to another page and use the
    // access token from $_SESSION['facebook_access_token']
} else {
    $helper = $fb->getRedirectLoginHelper();
    //$loginUrl = $helper->getLoginUrl('https://apps.facebook.com/xxxxxxxx/', $permissions);

    $loginUrl = $helper->getLoginUrl("http://www.xxxxxx.com/facebook/index.php",$permissions);
    echo "<script>window.top.location.href='".$loginUrl."'</script>";
}

帮助:)

【问题讨论】:

    标签: wordpress facebook


    【解决方案1】:

    我用这个教程解决了一些步骤

    https://www.youtube.com/watch?v=XYawdJh_mNQ

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-03
      • 2018-10-13
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      相关资源
      最近更新 更多