标签: facebook-php-sdk

现在我如何在Facebook的PHP SDK 3.0.0中进行身份验证?

所以Facebook已经改变了身份验证过程.再次.PHP SDK中的示例是:

$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,现在我们如何验证尚未进行身份验证的用户?我们只是创建一个else语句并调用结果$facebook->getLoginUrl()吗?

此外,上面的示例给出了一个错误,因为调用$facebook->getUser()返回我的用户ID,但是当我尝试调用$facebook->api('/me')给出错误时我的应用程序失败了:

致命错误:未捕获OAuthException:必须使用活动访问令牌来查询有关当前用户的信息.在第560行的/home/woohoobi/public_html/facebookv2/inc/facebook.php引用

有关如何验证未经过身份验证的用户的任何帮助都会很棒.

php facebook facebook-graph-api facebook-php-sdk

1
推荐指数
1
解决办法
7753
查看次数

在Facebook iframe-app中没有收到signed_request

我创建了一个页面选项卡Facebook应用程序,我想根据用户是否为粉丝显示不同的内容.(也称为扇形门,登陆页面或显示页面)

为此,我使用PHP SDK,具体如下代码:

<?php
require 'src/facebook.php';

$facebook = new Facebook(array(
'appId' => 'APP_ID',
'secret' => 'APP_SECRET',
'cookie' => true,
));
?>
Run Code Online (Sandbox Code Playgroud)

并在内容中:

<?php   
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

if (empty($data["page"]["liked"])) {?>
Thank you for liking our Page!
    <?php } else { ?>
You haven't liked our page yet..
<?php }; 

    // Debugging Code

echo "REQUEST:<br>";
print_r($_REQUEST);

echo "<br>GET:<br>";
print_r($_GET);

echo "<br>POST:<br>";
print_r($_POST);
?>
Run Code Online (Sandbox Code Playgroud)

当我使用我的Facebook用户登录并在我自己的页面上使用它时,这种方法有效.这意味着signed_request存在于$ _POST和$ _REQUEST中.

但是,当我用另一个用户测试它时,这些变量中没有signed_request值.

注意: - 我已经看了我的应用程序配置中的URL设置(300重定向和东西),但这看起来很好,就像我说我的用户它正在工作.. …

facebook facebook-php-sdk

1
推荐指数
1
解决办法
8034
查看次数

将redirect_uri包含在getLoginUrl中时出错(Facebook PHP SDK)

我希望用户使用Facebook登录后将用户重定向到特定的网页.我创建了一个LoginUrl使用Facebook PHP SDK并且用户点击此链接登录.我使用了http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/$facebook->getLoginUrl()

问题:如果我要包含redirect_uri参数,Facebook会给我一个错误An error occurred. Please try again later.登录网址工作正常而不包括redirect_uri.

谁知道如何解决这个问题?谢谢!

不工作的PHP代码

$loginUrl = $facebook->getLoginUrl(array(
        "scope" => "email,user_education_history,user_work_history",
        "redirect_uri" => "http://mydomain.com/login/facebook"
    ));
Run Code Online (Sandbox Code Playgroud)

使用PHP代码

$loginUrl = $facebook->getLoginUrl(array(
        "scope" => "email,user_education_history,user_work_history",
    ));
Run Code Online (Sandbox Code Playgroud)

php facebook facebook-php-sdk

1
推荐指数
1
解决办法
6824
查看次数

IE中的Facebook身份验证不会激活

我正在制作一个Facebook画布应用程序 要使用PHP SDK获取用户信息:

 <?

         $app_id = "";
         $secret="";
         $canvas_page = "";
        $auth_url = "";


$facebook = new Facebook(array(
  'appId'  => '',
  'secret' => '',
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = …
Run Code Online (Sandbox Code Playgroud)

php internet-explorer facebook facebook-php-sdk

1
推荐指数
1
解决办法
936
查看次数

使用facebook php sdk进行异常处理

我注意到,当我的应用程序使用php sdk for facebook创建的图像上传到Facebook相册时,sdk偶尔会抛出一个错误.

我在测试中几次从sdk中得到了一个错误...但是我试了一下...

    try{
        $picID = $this->facebook->api('/'.$this->aid.'/photos','post',$photo_details);
        var_dump($picID);
    }catch(Exception $e){
        echo('exception caught '.var_dump($e));
    }
Run Code Online (Sandbox Code Playgroud)

我正试图测试它,但由于运气不好,错误不会再发生.有人可以告诉我,我是否可以通过这种方式捕获异常?

谢谢.

php facebook exception-handling exception facebook-php-sdk

1
推荐指数
1
解决办法
2392
查看次数

Facebook - 无法创建应用

我是developer.facebook.com的新手,想要创建应用程序.当我转到此URL时,https://developers.facebook.com/apps它没有显示任何按钮+ create new app

我之前创建了一个应用程序,稍后将其删除,因为它对我没用.现在有谁能告诉我应该怎么做才能创建一个新的应用程序?

facebook-php-sdk

1
推荐指数
1
解决办法
207
查看次数

取消设置$ _SESSION无效

嗨我做了一个连接Facebook和注册用户的代码,然后它使用户登录,一切都很好..当他们登录我设置

$_SESSION['id']
Run Code Online (Sandbox Code Playgroud)

我的猜测是,如果没有设置用户将从我的网站注销,它将不会"自动连接"..

因为之前它就像一个循环,每当我退出时,它再次使用facebook连接登录,即使用户还没有clic再次"登录facebook"...

编辑:我改变了条件,知道不是"循环"我可以退出网站..

但是会话,并没有被取消!为什么,只是将cookie设置为''但是,=(会话不是未设置的

这是我的代码

头部

<?php
//
// uses the PHP SDK. Download from https://github.com/facebook/php-sdk
include("facebook-php-sdk-master/src/facebook.php");

//
// from the facebook app page
define('YOUR_APP_ID', '');
define('YOUR_APP_SECRET', '');

//
// new facebook object to interact with facebook
$facebook = new Facebook(array(
 'appId' => YOUR_APP_ID,
 'secret' => YOUR_APP_SECRET,
));
//
// if user is logged in on facebook and already gave permissions
// to your app, get his data:
$userId = $facebook->getUser();

?>
Run Code Online (Sandbox Code Playgroud)

身体

<?php
echo $_SESSION['id'];

if ($userId) …
Run Code Online (Sandbox Code Playgroud)

php sql facebook facebook-php-sdk

1
推荐指数
1
解决办法
1万
查看次数

facebook-> getUser()返回0

每当我尝试登录时,会打开一个询问基本权限的提示,然后将其重定向到带有URL的redirect_uri

="> HTTP://本地主机/演示/代码= AQDwzia3Wx1BktixF59jVHbm0ViGVJm8Xhb2tNZDyYreZh0KoSJhrSsJ8Aa2KX3gocwR0XNQjQz7ZlBh26_nBi-3iOMByhVO2cxwJ8maC4IHxBacfqXjzqIyBaZQbWKUUxPI6VBrqBgFXQasj7PEtmug7lt93dK4fmMC2A4i2dUYU-gSvzn0f0ZdB3eT_aSvgR1KoLCmQgLh3xix4H05QR6LCP9nLtQC4l9rMJW83kS0PNmWq0COZYvGfuX1R7519Fn3iXRB9F0MTsK1KQ_ulpK84PUCkuMu8et88Lln0ZwuzaPo0oERelkPWYnrrTKa-5W&状态= ed66ea618d8076d9e72c15d9a65a6312#=

即使facebook-> getUser()返回0

这是我的代码

<?php
require_once('php-sdk/facebook.php');
$facebook = new Facebook (array(
    'appId' => '1234',
    'secret' => '12313',
    'cookie' => true
    ));
?>

<html>
    <head> <title> Warming Up with FB API </title> </head>
    <body> <h1> Hello World </h1> </body>
</html>
<?php
$loginUrl = $facebook->getLoginUrl(array ( 
        'display' => 'popup',
        'redirect_uri' => 'http://localhost/demo'
        ));

$user = $facebook->getUser();
//echo $user. '</br>';
if ($user) {
    echo '<em>User Id: </em> '.$user;
} else {
    $loginUrl = $facebook->getLoginUrl(array ( 
        'display' => …
Run Code Online (Sandbox Code Playgroud)

php facebook facebook-php-sdk

1
推荐指数
1
解决办法
2万
查看次数

在PHP $ _SESSION数组中存储Facebook会话时收到"给定__PHP_Incomplete_Class的实例"

我正在尝试实现服务器端的PHP facebook身份验证代码,以配合我的前端Javascript Facebook身份验证代码.

为此,我抓住当前的facebook会话,将其存储到PGP $ _SESSION数组中,然后使用它来调用以获取用户的用户名.

在第二次进入侧面时,我检查我们是否在PHP $ _SESSION数组中存储了facebook会话,如果是这样,我再次使用它来进行调用以获取用户名.这是我在尝试使用存储的会话时收到"__PHP_Incomplete_Class given的实例"错误消息的地方.

我想在页面刷新之间存储facebook会话的原因是每当我调用$ session = $ helper-> getSession(); 用户登录后第二次收到消息"此授权代码已被使用".我在某处读到你需要存储facebook会话,而不是每次刷新都要求新的,因为facebook令牌已经被用来获取第一个会话对象.

任何人都可以帮我弄清楚如何在PHP $ _SESSION数组中正确存储facebook会话,并能够将其拉回来,并使用它来打电话给Facebook吗?

我正在使用最新的facebook JS sdk和最新的facebook PHP sdk.

码:

<?php
session_start();

require_once ('facebookphpsdkv4/src/Facebook/GraphObject.php');
require_once ('facebookphpsdkv4/src/Facebook/GraphUser.php');
require_once ('facebookphpsdkv4/src/Facebook/GraphSessionInfo.php');
require_once ('facebookphpsdkv4/src/Facebook/Entities/AccessToken.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookSession.php');
require_once ('facebookphpsdkv4/src/Facebook/Entities/SignedRequest.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookSignedRequestFromInputHelper.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookJavaScriptLoginHelper.php');
require_once ('facebookphpsdkv4/src/Facebook/HttpClients/FacebookHttpable.php');
require_once ('facebookphpsdkv4/src/Facebook/HttpClients/FacebookCurl.php');
require_once ('facebookphpsdkv4/src/Facebook/HttpClients/FacebookCurlHttpClient.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookResponse.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookRequest.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookSDKException.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookRequestException.php');
require_once ('facebookphpsdkv4/src/Facebook/FacebookAuthorizationException.php');

useFacebookGraphObject;
useFacebookGraphUser;
useFacebookGraphSessionInfo;
useFacebookEntitiesAccessToken;
useFacebookFacebookSession;
useFacebookEntitiesSignedRequest;
useFacebookFacebookSignedRequestFromInputHelper;
useFacebookFacebookJavaScriptLoginHelper;
useFacebookHttpClientsFacebookHttpable;
useFacebookHttpClientsFacebookCurl;
useFacebookHttpClientsFacebookCurlHttpClient;
useFacebookFacebookResponse;
useFacebookFacebookRequest;
useFacebookFacebookSDKException;
useFacebookFacebookRequestException;
useFacebookFacebookAuthorizationException;
FacebookSession::setDefaultApplication('AppID', 'AppSecret');

if (isset($_SESSION['session'])) …
Run Code Online (Sandbox Code Playgroud)

php session facebook facebook-graph-api facebook-php-sdk

1
推荐指数
1
解决办法
1803
查看次数

Facebook Graph API获取公共页面的公共帖子

我想访问public post of the public pagephp script。从Facebook页面获取此数据是否可行?我检查了文档,发现如下网址。

https://developers.facebook.com/docs/pages/access-tokens

在这里,它提供对我创建的页面的访问,但不访问其他用户页面。那么我如何才能访问其他用户的页面帖子。

任何帮助将不胜感激。

php facebook facebook-graph-api facebook-php-sdk

1
推荐指数
2
解决办法
2766
查看次数