2016-03-30 38 views
5

Ben Heroku'ya yeniyim. Bazen ben Fb için Heroku üzerinde bir uygulama dağıtmaya çalışıyorum ama başarı görmedim. İnternette çözüm aramayı denedim ama adım adım'u bulamadım, bu yüzden buradayım.Heroku'da Fb uygulamasını dağıtma

My Fb App kodu "index.php"

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

$fb = new Facebook\Facebook([ 
'app_id' => '************', 
'app_secret' => '**********', 
'default_graph_version' => 'v2.4',]); 
$helper = $fb->getCanvasHelper(); 
$permissions = ['email']; 

try { 
if (isset($_SESSION['facebook_access_token'])) { 
$accessToken = $_SESSION['facebook_access_token']; 
} else { 
    $accessToken = $helper->getAccessToken(); 
} 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
} 

if (isset($accessToken)) { 

if (isset($_SESSION['facebook_access_token'])) { 
    $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
} else { 
    $_SESSION['facebook_access_token'] = (string) $accessToken; 
    $oAuth2Client = $fb->getOAuth2Client(); 
    $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']); 
    $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken; 
    $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
} 

try { 
    $request = $fb->get('/me'); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    if ($e->getCode() == 190) { 
     unset($_SESSION['facebook_access_token']); 
     $helper = $fb->getRedirectLoginHelper(); 
     $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); 
     echo "<script>window.top.location.href='".$loginUrl."'</script>"; 
     exit; 
    } 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
} 

try { 
    $requestPicture = $fb->get('/me/picture?redirect=false&height=300'); 
    $requestProfile = $fb->get('/me'); 
    $picture = $requestPicture->getGraphUser(); 
    $profile = $requestProfile->getGraphUser(); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
} 

echo "<img src='".$picture['url']."'/>"; 
} else { 
$helper = $fb->getRedirectLoginHelper(); 
$loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/'); 
echo "<script>window.top.location.href='".$loginUrl."'</script>"; 
} 

Ben Git Bash üzerinde kullanılan

{} 

Komutlar "composer.json"

heroku create AppName 
mkdir AppName 
cd AppName 
git init 
git add . 
git commit -m "comment" 
heroku git:remote -a AppName 
git push heroku master 

git branch 
git commit -am "comment" 
git push heroku master 

Herşey yolunda, Heroku PHP dosyalarını derler, dosyayı dağıtır. Ben Fb uygulama ya da Heroku uygulaması adresini açın Ancak doğrudan bir ** 403 Yasak" mesaj fbapp-2.herokuapp.com

ben yok
enter image description here

Buildpacks Heroku/php set dizin yapısını gösterir procfile veya .htaccess dosyası

Heroku günlükleri gösterir

State changed from starting to up 
2016-04-05T15:30:14.413923+00:00 heroku[router]: at=info method=GET path="/"    host=fbapp-2.herokuapp.com request_id=ea94baf1-a433-4631-bbe5-7493cb7e137f wd="43.230.135.148" dyno=web.1 connect=0ms service=3ms status=403 bytes=373 
2016-04-05T15:30:14.399879+00:00 app[web.1]: [Tue Apr 05 15:30:14.395964 2016] [autoindex:error] [pid 82:tid 139840075028224] [client 1.3.2.3:58066] AH01276: Cannot serve directory /app/: No matching DirectoryIndex (index.php,index.html,index.htm) found, and server-generated directory index forbidden by Options directive 
2016-04-05T15:30:14.400023+00:00 app[web.1]: 1.3.2.3 - - [05/Apr/2016:15:30:14 +0000] "GET/HTTP/1.1" 403 209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 OPR/36.0.2130.46 
2016-04-05T15:30:14.873648+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=fbapp-2.herokuapp.com request_id=8b65b3b6-2f82-4ab4-abb4-d4849c1ec225 fwd="43.230.135.148" dyno=web.1 connect=0ms service=1ms status=404 bytes=373 
2016-04-05T15:30:14.856297+00:00 app[web.1]: 1.3.2.3 - - [05/Apr/2016:15:30:14 +0000] "GET /favicon.ico HTTP/1.1" 404 209 "http://fbapp-2.herokuapp.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 OPR/36.0.2130.46 
+0

"eksi" sorusu sonrası a oy HEROKU'da kullanılacak mevcut API için ADIM ADIM ADIM. – Sourav

+0

Heroku, büyük bir hata grubu için tek bir http hata kodu kullanma eğilimindedir. Sorunu tanımlamak için Heroku hesabınıza giriş yapmanız ve Heroku hata günlüğüne erişmeniz gerekiyor. "H" harfi ile başlayan hata kodları içerecektir. Yanıtınız için –

+0

@PlanetScaleNetworks thnx .. ERROR günlükleri eklendi. – Sourav

cevap

1

T Aldığınız hata günlüğü, uygulamanızın Heroku sunucusundaki/app dizininde bulunmadığını ve bu dizinde sunulması gereken bir şey olmadığını gösterir. Uygulamanızın tamamını web kökünden/uygulama dizinine kaydırmayı deneyin ve güncellenmiş bir hata günlüğüne geri dönmüyorsanız, sorunun nasıl çözüleceğini göreceksiniz.

1

Yani, hatadan anladığım gibi dizin içinde hiçbir dizin dosyası yok, erişmeye çalışıyorsunuz ve dizin listeleme devre dışı bırakılmış oluyor, bu yüzden 403 hatası alıyorsunuz.

sana olan dosyaya erişmek istediğiniz dizin içinde .htaccess oluşturmayı denemek öneririm: Bu konumdaki bir dizin listesi sağlıyor Hangi

Options +Indexes 

.

1

Günlükler, Heroku'nun Apache'sinin /app klasöründe bir dizin dosyası bulamadığını size söylüyor. /app içindeki fbapp-2 içeriğini taşıma ve besteci kullandığınız gibi apache sizin besteci config bu ekleyerek doğru izinlere sahip olduğundan emin olun: Senden önce

"scripts": { "post-install-cmd": [ "chmod -R 755 app/" ] }