我对这个领域和stackoverflow完全陌生,所以请耐心等待。
我在 muse 中创建了一个网站(当然,设计没有编码),
这是我的问题......只是坚持创建“Fb 分享按钮”
但我有个主意
第 1 步,当用户单击按钮时,加载一个带有 fb 登录或共享菜单的灯箱
第 2 步,当用户输入必要的信息时,它会发布在他们的墙上
第 3 步,将它们重定向到另一个页面。
请帮我...
首先,您需要在此处创建一个新的 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 用户时间线的链接。这不是一项简单的任务,需要反复试验,特别是如果您是这种类型的新手。
我基于此的完整教程可以在这里找到,
Muse 已经为这种类型提供了内置功能,只需查看小部件背后的社交功能即可。
这比使用 php 设置页面要容易得多。
另请访问 Facebook SDK 文档并阅读有关如何重定向链接的更多信息。
如果您遵循这些说明而不是使用 php 创建所有内容,则更容易,这要复杂得多。