getLoginUrl:参数app_id是必需的

时间:2013-07-19 14:23:00

标签: php facebook-php-sdk

我正在尝试将facebook身份验证集成到php网站中。

我使用下面的代码:

<?php
    require '../facebook-php-sdk-master/src/facebook.php';

    $app_id = 'some app id';
    $app_secret = 'some secret';
    $app_url = 'http://localhost/some app/';
    $scope = 'email,publish_actions';

    // Init the Facebook SDK
    $facebook = new Facebook(array(
                                   'appId'  => $app_id,
                                   'secret' => $app_secret,
                                   ));

    // Get the current user
    $user = $facebook->getUser();

    // If the user has not installed the app, redirect them to the Login Dialog
    if ($user <> '0' && $user <> '') { /*if valid user id i.e. neither 0 nor blank nor null*/
        try {
        $loginUrl = $facebook->getLoginUrl(array(
                                                 'scope' => $scope,
                                                 'redirect_uri' => $app_url,
                                                 ));
        die('<script>top.location.href="'.$facebook->getLoginUrl($params).'";</script>');
        }
        catch (FacebookApiException $e) { /*sometimes it shows user id even if user in not logged in and it results in Oauth exception. In this case we will set it back to 0.*/
            error_log($e);
            $user = '0';
        }
    }
    else
    {
        echo 'user not found';
    }
?>

问题是:

  

虽然我指定并使用正确的应用ID,但我总是这样   此错误消息 - 参数app_id是必需的。

我认为我面临着类似的问题 - till getting “The parameter app_id is required” error on Facebook API login,但这个问题没有被接受的答案。

请告知我是否遗漏了任何内容。

1 个答案:

答案 0 :(得分:0)

您在appId中设置的参数应为new Facebook(...);

您也可以尝试通过立即调用以下内容来覆盖它,看看它是否解决了问题:

$facebook->setAppId('some app id');