2013-05-22 10 views
5

Ecco quello che vedo nella documentazione:Notifiche di Facebook: bisogno dell'autorizzazione o no?

Apps can send notifications to any existing user that has authorized the app. No special or extended permission is required. 

Va bene, suona bene. Sto utilizzando l'SDK JS e qui è quello che sto cercando di fare:

FB.api('/me/notifications?access_token=' + window.accessToken + '&href=test&template=test', function(response) { 
     console.log(response); 
}); 

Questo è quello che sto ottenendo:

"(#200) The "manage_notifications" permission is required in order to query the user's notifications." 

Ho provato a sostituire il parametro href con le mie app vero dominio. L'utilizzo del mio ID facebook invece di "/ me /" non fa alcuna differenza. AIUTO!

Ho provato ad aggiungere il permesso manage_notifications (e ancora non funziona ...), ma la mia domanda è perché dice il contrario nei documenti?

EDIT: Siamo andati in PHP:

<?php 

include_once('sdk/facebook.php'); 

$user = $_POST['user']; 
$message = $_POST['message']; 

$config = array(); 
$config['appId'] = '609802022365238'; 
$config['secret'] = '71afdf0dcbb5f00739cfaf4aff4301e7'; 

$facebook = new Facebook($config); 
$facebook->setAccessToken($config['appId'].'|'.$config['secret']); 

$href = 'href'; 

$params = array(
     'href' => $href, 
     'template' => $message, 
    ); 


$facebook->api('/' . $user . '/notifications/', 'POST', $params); 

?> 

EDIT 2: Dopo un errore di logica sciocca ora funziona :)

risposta

7

Per inviare una notifica è necessario utilizzare token di accesso applicazione - appid|appsecret , quindi dovresti inviarlo lato server ed eseguirlo tramite chiamata AJAX. PHP esempio:

require_once("facebook.php"); 

$config = array(); 
$config['appId'] = 'YOUR_APP_ID'; 
$config['secret'] = 'YOUR_APP_SECRET'; 

$facebook = new Facebook($config); 
$facebook->setAccessToken($config['appId'].'|'.$config['secret']); 

$user = 'userid'; 
$message = 'message'; 
$href = 'href'; 

$params = array(
     'href' => $href, 
     'template' => $message, 
    ); 

$facebook->api('/' . $user . '/notifications/', 'post', $params); 

https://developers.facebook.com/docs/concepts/notifications/

+0

vedo. Lo proverò e vedrò cosa succede. Grazie! –

+0

Ok, non ricevo errori. La cattiva notizia è che non funziona :) Ho provato a usare try-catch, ma niente. Qualche idea su come vedere cosa è andato storto? –

+0

Stai inviando una richiesta all'utente, che ha autorizzato l'applicazione? Prova a sostituire l'ultima riga con '$ send = $ facebook-> api ('/'. $ User. '/ Notifications /', 'post', $ params); var_dump ($ send); 'Funziona per me e var_dump return' array (1) {["success"] => bool (true)} ' – smalu