0

我对这个领域和stackoverflow完全陌生,所以请耐心等待。

我在 muse 中创建了一个网站(当然,设计没有编码),

这是我的问题......只是坚持创建“Fb 分享按钮”

但我有个主意

第 1 步,当用户单击按钮时,加载一个带有 fb 登录或共享菜单的灯箱

第 2 步,当用户输入必要的信息时,它会发布在他们的墙上

第 3 步,将它们重定向到另一个页面。

请帮我...

4

2 回答 2

0

首先,您需要在此处创建一个新的 facebook 应用程序 Setup App

然后你需要在PHP SDK 这里下载facebook

此时,您需要将 SDK 解压缩到您托管网站的根目录。

如果您在本地主机上工作,则需要安装xampp wamp lamp or mamp才能在本地主机上正确设置服务器以测试您php这是因为php它是一种服务脚本语言。如果您不熟悉 php,请按照本教程启动并运行 php,然后才能完成本教程。 PHP设置在这里

如果您更喜欢视频教程,youtube.com 上有很多

在服务器或本地主机上facebook sdk and php运行后,您需要连接到 facebook,

在新目录中创建一个新的 PHP 文件并添加以下代码:

<?php
session_start();

require_once 'facebook-php-sdk/autoload.php';
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
use Facebook\FacebookRedirectLoginHelper;

$api_key = 'FACEBOOK_APP_ID';
$api_secret = 'FACEBOOK_APP_SECRET';
$redirect_login_url = 'http://www.yoursite.com/somefolder/file.php';

要发布指向用户 Facebook 时间线的链接,应用程序需要授权。这实际上是一个复杂的函数,请将此代码添加到您的 PHP 文件中的其他代码下方。

/ initialize your app using your key and secret
FacebookSession::setDefaultApplication($api_key, $api_secret);

// create a helper opject which is needed to create a login URL
// the $redirect_login_url is the page a visitor will come to after login
$helper = new FacebookRedirectLoginHelper( $redirect_login_url);

// First check if this is an existing PHP session
if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) {
    // create new session from the existing PHP sesson
    $session = new FacebookSession( $_SESSION['fb_token'] );
    try {
        // validate the access_token to make sure it's still valid
        if ( !$session->validate() ) $session = null;
    } catch ( Exception $e ) {
        // catch any exceptions and set the sesson null
        $session = null;
        echo 'No session: '.$e->getMessage();
    }
}  elseif ( empty( $session ) ) {
    // the session is empty, we create a new one
    try {
        // the visitor is redirected from the login, let's pickup the session
        $session = $helper->getSessionFromRedirect();
    } catch( FacebookRequestException $e ) {
        // Facebook has returned an error
        echo 'Facebook (session) request error: '.$e->getMessage();
    } catch( Exception $e ) {
        // Any other error
        echo 'Other (session) request error: '.$e->getMessage();
    }
}

现在我从响应中创建一个 GraphObject,脚本将数据输出到浏览器。我将 Facebook 消息 ID 用于第二个请求:

if ( isset ( $msgid ) ) {
        // we only need to the sec. part of this ID
        $parts = explode('_', $msgid);
        try {
            $request2 = new FacebookRequest(
                $session,
                'GET',
                '/'.$parts[1]
            );
            $response2 = $request2->execute();
            $graphObject2 = $response2->getGraphObject();
            // the GET response object
            echo '<pre>' . print_r( $graphObject2, 1 ) . '</pre>';
        } catch ( FacebookRequestException $e ) {
            // show any error for this facebook request
            echo 'Facebook (get) request error: '.$e->getMessage();
        }
    }

最后但同样重要的是,我们看一下创建登录 URL 的代码(将此代码放在另一个代码下方)。

} else {
    // we need to create a new session, provide a login link
    echo 'No session, please <a href="'. $helper->getLoginUrl( array( 'publish_actions' ) ).'">login</a>.';
}

按照本教程将用户连接到 facebook 以登录,然后允许您发布指向 facebook 用户时间线的链接。这不是一项简单的任务,需要反复试验,特别是如果您是这种类型的新手。

我基于此的完整教程可以在这里找到,

完整教程在这里

于 2015-07-14T07:10:26.080 回答
0

Muse 已经为这种类型提供了内置功能,只需查看小部件背后的社交功能即可。

这比使用 php 设置页面要容易得多。

另请访问 Facebook SDK 文档并阅读有关如何重定向链接的更多信息。

如果您遵循这些说明而不是使用 php 创建所有内容,则更容易,这要复杂得多。

于 2015-09-25T12:47:34.843 回答