lostyazilim
tr.link

Facebook SDK php ile login işleminde problem

5 Mesajlar 1.558 Okunma
lstbozum
tr.link

greencheapnet greencheapnet GreenCheap CMS Kullanıcı
  • Üyelik 13.07.2016
  • Yaş/Cinsiyet 31 / E
  • Meslek Full-Stack Developer
  • Konum Ankara
  • Ad Soyad Y** S**
  • Mesajlar 86
  • Beğeniler 31 / 37
  • Ticaret 0, (%0)
Arkadaşlar facebook api ile login işlemi yaptırmak istiyorum herşey güzel hoş hallettim ancak, login yaptıkdan sonra sayfa şu hatayı veriyor Graph returned an error: This authorization code has been used.

hatayı görmek için https://www.pastheme.com/test/fb.php

Sizce bu durum nedendir, bir kaç araştırma yaptım ama sonuç bulamıyorum
 

 

wmaraci
reklam

cetvel cetvel WM Aracı Kullanıcı
  • Üyelik 22.09.2015
  • Yaş/Cinsiyet 35 / E
  • Meslek yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad U** K**
  • Mesajlar 312
  • Beğeniler 110 / 101
  • Ticaret 0, (%0)
access_token'ı manuel elle mi giriyorsun ?
 

 

phpanaliz.com

cetvel cetvel WM Aracı Kullanıcı
  • Üyelik 22.09.2015
  • Yaş/Cinsiyet 35 / E
  • Meslek yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad U** K**
  • Mesajlar 312
  • Beğeniler 110 / 101
  • Ticaret 0, (%0)
Ek olarak oauth2 ile çağırırsan access_token'ın ömrünü daha uzun tutarsın, normal çağırışta gelen access_token'ın ömrü 10 dakika imiş,
not link yerine kodlar.
 

 

phpanaliz.com

greencheapnet greencheapnet GreenCheap CMS Kullanıcı
  • Üyelik 13.07.2016
  • Yaş/Cinsiyet 31 / E
  • Meslek Full-Stack Developer
  • Konum Ankara
  • Ad Soyad Y** S**
  • Mesajlar 86
  • Beğeniler 31 / 37
  • Ticaret 0, (%0)
Access_token oto geliyor ancak saniyelik ömrü, şuan ki sorunum login oldukdan sonra bunu Session'a dökmek tamam onu bir şekilde hallederim ancak, ben giriş yapan kişiden her saniye veri almam gerekiyor, duvarındaki bilgileri paylaşımlarını vesayre, phpnin kendi yoluyla sessionnunu oluşturur siteye login yaptırırım ama access_token gittikden sonra ben bu kişinin verisini sürekli alamam bunu nasıl hallederim?
 

 

wmaraci
wmaraci

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Uygulama Ayarlanmadı: Bu uygulama hala geliştirme modunda olduğu için erişemiyorsun. Kayıtlı bir test kullanıcısına geçiş yap veya uygulama yöneticisinden izin iste.

Diye bir hata veriyor facebook yölendirmesinde, bu arada kodlarını yazarsan yardımcı olabilirim, sunucu tarafında sınırsız offline token alma olayı da var. Aşağıda zamanında uğraştığım bir paylaşım zımbırtısı var, örnek olsun diye bırakıyorum, araştırıp deneyip kurgulamak sana kalmış. kolay gelsin.

session_start();
require_once __DIR__ . '/Facebook/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '458866701137174545453',
'app_secret' => '30f1372f7a377234393a1e88727e7daadb097',
'default_graph_version' => 'v2.10',
]);

// Önceki Access Token dosyadan okunur
$dosya = fopen('fbuzunsürelitoken.txt', 'r');
$icerik = fread($dosya, filesize('fbuzunsürelitoken.txt'));
/*echo $icerik;*/
fclose($dosya);

if (strlen($icerik) > 0)
{
$_SESSION['facebook_access_token'] = (string) $icerik;
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);

// 'GET' 'code' değişkenine sahipse kullanıcı geldiği yere yönlendirilir
if (isset($_GET['code'])) {
header('Konum: ./');
}
// Kullanıcı bilgisi alınır
try {
$profile_request = $fb->get('/me');
$profile = $profile_request->getGraphNode()->asArray();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// Facebook graph hata verirse
echo 'Graph returned an error: ' . $e->getMessage();
session_destroy();
// ullanıcı uygulama giriş sayfasına gönerken
header("Konum: ./");
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// Kullanıcı doğrulama veya diğer yerel hatalar için
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}

//FB post content
$message = $_GET["PostMessage"];
/*$title = 'MAJE Ağ sosyal dağıtımı';*/
$link = $_GET["ShareLink"];
/*$description = 'MAJE Ağ sosyal dağıtımı';
$picture = 'https://wallpapers.wallhaven.cc/wallpapers/full/wallhaven-118257.jpg';*/

$attachment = array(
'message' => $message,
'name' => $title,
'link' => $link,
'description' => $description,
'picture'=>$picture
);

// post on behalf of page
$pages = $fb->get('/me/accounts');
$pages = $pages->getGraphEdge()->asArray();

foreach ($pages as $key) {
if ($key['id'] == $_GET["PageID"]) {
$post = $fb->post('/' . $key['id'] . '/feed', $attachment, $key['access_token']);
$post = $post->getGraphNode()->asArray();
}
}
echo "The message may have been sent.";
}
else
{
$helper = $fb->getRedirectLoginHelper();

$permissions = ['manage_pages', 'publish_pages']; // optional
try {
if (isset($_SESSION['facebook_access_token'])) {
$accessToken = $_SESSION['facebook_access_token'];
} else {
$accessToken = $helper->getAccessToken();
}
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// Facebook graph hata verirse
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'])) {

// Sonraki kullanımlar için elde edilen uzun süreli token dosyaya kaydedilir
$dosya = fopen('fbuzunsürelitoken.txt', 'w');
fwrite($dosya, $_SESSION['facebook_access_token']);
fclose($dosya);

$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
} else {
// Kısa vadeli Access Token alınır
$_SESSION['facebook_access_token'] = (string) $accessToken;
// OAuth 2.0 istemcisi
$oAuth2Client = $fb->getOAuth2Client();
// Kısa vadeli Access Token uzun vadeliyle değiştirilir
$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
// Facebook için uzun süreli Access Token tanımlanır
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}
// 'GET' 'code' değişkenine sahipse kullanıcı geldiği yere yönlendirilir
if (isset($_GET['code'])) {
header('Konum: ./');
}
// Kullanıcı bilgisi alınır
try {
$profile_request = $fb->get('/me');
$profile = $profile_request->getGraphNode()->asArray();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// Facebook graph hata verirse
echo 'Graph returned an error: ' . $e->getMessage();
session_destroy();
// ullanıcı uygulama giriş sayfasına gönerken
header("Konum: ./");
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// Kullanıcı doğrulama veya diğer yerel hatalar için
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}

//FB post content
$message = $_GET["PostMessage"];
/*$title = 'MAJE Ağ sosyal dağıtımı';*/
$link = $_GET["ShareLink"];
/*$description = 'MAJE Ağ sosyal dağıtımı';
$picture = 'https://wallpapers.wallhaven.cc/wallpapers/full/wallhaven-118257.jpg';*/

$attachment = array(
'message' => $message,
'name' => $title,
'link' => $link,
'description' => $description,
'picture'=>$picture
);

// post on behalf of page
$pages = $fb->get('/me/accounts');
$pages = $pages->getGraphEdge()->asArray();

foreach ($pages as $key) {
if ($key['id'] == $_GET["PageID"]) {
$post = $fb->post('/' . $key['id'] . '/feed', $attachment, $key['access_token']);
$post = $post->getGraphNode()->asArray();
}
}
echo "The message may have been sent.";


// Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token']
} else {
// Eğer bütün işlemler tek bir sayfada yönetiliyorsa sesion alındıktan sonra geri dönülecek adres burasıdır, böyleliklesesion başladığında boşta beklemek yerine o session kullanılarak gerekli işlemler yaptırılabilir
$GeriDönüşAdresi = $helper->getLoginUrl('http://maje.eyuperdogan.com.tr/autopostem/facebook.php', $permissions);
echo 'Giriş Yap';
}
}
 

 

no time for caution
wmaraci
wmaraci
Konuyu toplam 3 kişi okuyor. (0 kullanıcı ve 3 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al