Desidero abilitare determinate funzionalità solo per gli utenti con l'autorizzazione "publish_actions" e la Timeline. Come posso rilevare se l'utente ha abilitato la linea temporale?Come posso verificare se l'utente ha la Timeline di Facebook?
risposta
1) Una soluzione parziale consiste nel verificare se l'utente ha un album denominato "foto di copertina". Sebbene non tutti, ma MOLTI utenti che avrebbero attivato la timeline, avrebbero questo album !!
2) Un modo sicuro è quello di recuperare i contenuti html del profilo di un utente e controllare se ha una sequenza temporale !!
Attualmente non esiste un modo API per verificare se l'utente ha abilitato la timeline.
È possibile provare a utilizzare "Add To Timeline (beta)" social plugin (passando publish_actions
come perms
) in combinazione con Facebook JS-SDK Events.
Iscriviti a auth.login
, auth.authResponseChange
e/o auth.statusChange
eventi e verificare status
proprietà di response
passato al listener di eventi, una volta evento licenziato e utente è connected
si può publish action e se riuscirà utente marchio come uno che hanno temporale installato.
Questo però ha alcuni aspetti negativi:
- meglio essere sicuri di non chiedere agli utenti di
publish_actions
nei flussi diversi "Aggiungere alla linea temporale" social plugin per essere sicuri che sono hanno sia timeline e il permesso concesso. - Si dovrebbe pubblicare un'azione per assicurarsi che abbiano concesso le autorizzazioni per farlo, dal momento che tali eventi possono essere altre azioni dell'utente (come cambio password o cambio utente di Facebook, ecc ...).
Alla fine (probabilmente in un prossimo futuro) il profilo di tutti saranno rotolò alla linea temporale, quindi sembrerebbe facebook non ha fornito un modo affidabile per rilevare un'applicazione temporale abilitato.
La seguente soluzione potenziale non richiede richieste di autorizzazione aggiuntive. Se aggiungi il codice del plug-in della timeline di Facebook all'interno di un DIV nascosto, puoi attendere fino a quando l'FB Canvas non viene caricato (o xfbml nelle pagine web) e verificare l'altezza CSS di quell'elemento. Se l'utente non ha la linea temporale sarà 0px. Altrimenti, sarà 250 px (come l'ho incluso). Questo funziona solo all'interno di Facebook Apps (non in Facebook integrare pagine web):
Facebook nasconde questo elemento di plug-in, se l'utente non ha attivato linea temporale impostando l'altezza elemento di stile a 0.
Aggiungi questo al vostro pagina App:
<div id="timeline-hidden" style="display:none">
<div class="fb-add-to-timeline" data-show-faces="true"></div>
</div>
<div id="timeline-test"></div>
Poi, nel vostro javascript (questo uso jQuery, FYI):
window.fbAsyncInit = function() {
FB.init({ ... }); // after your FB.init code
FB.Canvas.setDoneLoading(
function (result) {
var str_timeline;
var tlsrc = $("#timeline-hidden").find("iframe").first().css("height");
if("0px"==tlsrc)
str_timeline = '<h2 style="color:red">This user DOES NOT have timeline.<h2>';
else
str_timeline = "<h2>This user DOES have timeline.</h2>";
$("#timeline-test").html(str_timeline + ", timeline plugin css height:" + tlsrc + ", loadtime: " + result.time_delta_ms);
}
);
};
Il seguente per Web Integration è un po 'meno affidabile a causa della potenziale latenza di rete, ma il concetto potrebbe essere modificato per qualche soluzione praticabile:
Dal FB.Canvas.setDoneLoading non viene chiamato su un sito web che include l'integrazione FB, modificare la funzione FB.Canvas.setDoneLoading sopra per iscriversi a xfbml.rendere l'azione e mettere un timeout sul test:
window.fbAsyncInit = function() { FB.init ({...}); // dopo il codice FB.init
$(document).ready(function() {
FB.Event.subscribe('xfbml.render',
function() {
setTimeout(function(){
var str_timeline;
var tlsrc = $("#timeline-hidden").find("iframe").first().css("height");
if("0px"==tlsrc)
str_timeline = '<strong><span style="color:red">This user DOES NOT have timeline.</span></strong>';
else
str_timeline = "<strong>This user DOES have timeline.</strong>";
$("#timeline-test").html(str_timeline + ", timeline plugin css height:" + tlsrc);
}, 250);
}
);
});
};
ho trovato nel mio test che spostando il FB.Event.subscribe ('xfbml.render', in un .ready $ (document) (function() {...}); aiuta con latenza quando la tua app è incorporata in una pagina di Facebook (richiede un po 'più tempo per essere caricata). Ha appena iniziato a testarlo, quindi potrebbe non essere in grado di contenere ulteriori test.
- 1. Come posso verificare se la mia applicazione ha il focus?
- 2. iOS: verificare se l'utente ha già effettuato l'accesso utilizzando Facebook?
- 3. Come verificare se l'utente di IF ha GIÀ apprezzato la pagina di Facebook?
- 4. Verificare se la variabile ha il valore ''
- 5. Come posso verificare se un doppio ha una parte frazionaria?
- 6. Facebook ha ucciso feed RSS pubblici; come ottenere un RSS della pagina Facebook con la nuova Timeline?
- 7. Come verificare se ngIf ha preso effetto
- 8. Come verificare se il selettore ha qtip?
- 9. Come posso verificare se la matrice di oggetti ha valori di proprietà duplicati?
- 10. Verificare se la pagina Facebook di Facebook è stata registrata come utente
- 11. Come verificare se DbContext ha una transazione?
- 12. Come verificare se grep non ha output?
- 13. Come verificare se la decrittografia ha avuto successo?
- 14. Come verificare se Handler ha un'attività attiva?
- 15. Come capire correttamente la timeline di devtools?
- 16. Verificare se Facebook è bloccato quindi reindirizzare
- 17. Verificare se Html.ValidationSummary() ha un valore
- 18. come posso verificare se esiste un file?
- 19. android facebook sdk pubblica il feed nella timeline dell'utente
- 20. Applicazione Facebook, come verificare se all'interno della tela di Facebook/standalone con PHP?
- 21. Verificare se un oggetto ha una proprietà
- 22. come Facebook non sta pubblicando su timeline/new feed/wall
- 23. Verificare se genitore ha classe utilizzando LESS
- 24. Come posso recuperare i nuovi dati della timeline dall'API?
- 25. Come verificare se un descrittore di file ha dati disponibili?
- 26. SQL: verificare se una colonna ha la proprietà "Not Null"
- 27. Come posso verificare se la mia cache redis funziona?
- 28. Recupero della foto di copertina della timeline di Facebook
- 29. Come posso verificare se la riga esiste o no?
- 30. Come posso verificare se la funzione è parziale?