2013-10-14 6 views
6

facebook php sdk kullanarak `debug_token` çağrısını nasıl gerçekleştirirdiniz? son nokta görünüyor <a href="https://developers.facebook.com/docs/facebook-login/access-tokens/#debug" rel="noreferrer">documentation</a> göre

input_token: erişim hakkında
access_token bilgi almak istiyorum belirteç

GET /debug_token? 
    input_token={input-token}& 
    access_token={access-token} 

gibi: Uygulamanız erişim belirteci veya bir den geçerli bir kullanıcı erişim belirteci app

geliştiricisi Ben bir "geçerli bir kullanıcı erişim tok yok varsayarsak tr Uygulamanın geliştiricisinden "- her 2 ayda bir yenilemeyi ve her zaman bunu akılda tutmak istemediğim için - uygulama erişim belirtecini kullanarak nasıl uygularım?"

getApplicationAccessToken() yöntemi korunur; bu nedenle, bu dosyayı herkese açık olmadan geçersiz kılmanın bir yolu yoktur.

Eksik olduğum herhangi bir zarif çözüm?

PS:

$tokenDebug = $fb->api('debug_token', array(
    'input_token' => $token, 
)); 
: ile başarısız olur dolayı erişim belirteci eksikliği hatası "Sen jeton veya uygulamanın sahibi veya geliştirici bir kullanıcı erişim belirteci bir uygulama erişimini sağlaması gerekir" çağrı örneği

PPS: "ilginç" bir şey, yukarıdaki hata her $token için değil, bazıları için görünür ve başarısız ve başarılı olan belirteçleri arasında belirgin bir ayrım göremiyorum.

PPP'ler: FB PHP SDK https://developers.facebook.com/bugs/637897982899835

PPPPPS için bir özellik isteği oluşturuldu: $token belirteci bir kullanıcı erişimi

PPPPS olduğu Muhtemelen daha iyi olabilir yerine bir çekme isteği oluşturmak için, ancak 1 var : 30 am ve ben çok fazla yorgunum bu

+0

Neden ilk olarak _application_ erişim belirtecinizde hata ayıklamak istiyorsunuz…? – CBroe

+0

@CBroe: Kullanıcı erişim belirteci '$ jeton' hata ayıklamak istiyorum – zerkms

+1

'app_id | app_secret' kombinasyonu (her ikisi de ortadaki bir boru simgesiyle birleştirilmiştir) her zaman uygulama erişim belirteci olarak çalışır). – CBroe

cevap

10

Tamam, bir uygulama erişim belirtecine ihtiyaç duyarsa, app_id|app_secret (her ikisi de ortadaki bir boru simgesiyle birleştirilmiş) her zaman çalışır.

kadar 3.2.2 PHP SDK korunmuş olduğu görünüyor getApplicationAccessToken yöntemi - getAppId oysa ve getAppSecret zaten bu sürümde halka açıktır; Bu yüzden bunlar sabit kodlama kimliğine ve gizli yerine alternatif olabilir.

+1

. Uygulama Masaüstü/Yerel olduğunda, işe yaramıyor. Bu durumda input_token ve access_token aynıdır. – OCTAGRAM

5

PHP SDK, \Facebook\Authentication\OAuth2Client örneğini döndüren getOAuth2Client() istemci yöntemine sahiptir.

Bu, erişim belirteciyle ilgili verileri içeren \Facebook\Authentication\AccessTokenMetadata örneğini döndüren debugToken($accessToken) yöntemine sahiptir.

$appid = '123456789'; 
$appsecret = 'foobar'; 

$api = new Facebook(['app_id' => $appid, 'app_secret' => $appsecret]); 

$oauth = $api->getOAuth2Client(); 
$meta = $oauth->debugToken($accessToken); 
$meta->validateAppId($appid); // Will throw a FacebookSDKException if invalid 

$meta->getIsValid(); // boolean 
$meta->getExpiresAt(); // \DateTime|null 
+0

şimdi gerçekten :-) yapar – zerkms

İlgili konular