Heroku PHP无法加载

时间:2016-02-16 17:55:52

标签: php facebook heroku

我正在尝试使用Facebook扩展程序测试 PHP 文件以发布到时间轴,因为我需要 Facebook Canvas HTTPS:// 所以我正在尝试使用 heroku ,所以我用php部署我的文件,但它不会加载任何东西......

app_id, app_secret, $loginUrl由(...)填充。

这就是我的PHP:

<?php
    session_start();
    require_once __DIR__ . '/src/facebook/autoload.php';

    $fb = new Facebook\Facebook([
      'app_id' => '(...)',
      'app_secret' => '(...)',
      '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/(...)/', $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/(...)/', $permissions);
        echo "<script>window.top.location.href='".$loginUrl."'</script>";
    }
?>

HEROKU的文件在那里: enter image description here

从HEROKU登录: enter image description here

感谢您的帮助,我第一次与heroku合作。

1 个答案:

答案 0 :(得分:0)

解决方案:

COMPOSER 安装到 PHP 并在文件夹中composer update时在bash中运行cd(应该在那里 composer.json )创建 composer.lock vendor 文件夹..