2010-03-31 4 views
2

Je viens de trouver un grand échantillon de Facebook Connect on Blackberry par Eki Y. Baskoro,BlackBerry - Facebook étendu autorisations

Voici un petit guide sur l'utilisation de Facebook Connect sur Blackberry. J'ai créé une simple Facade encapsulant l'API REST de Facebook ainsi qu'une approche MVC «brute» pour la navigation à l'écran. J'ai testé sur JDE 4.5 en utilisant le simulateur 8320. Ceci est encore en cours et tout le travail est GPL.

Cela fonctionne très bien pour lire des choses.

NB N'oubliez pas de get Facebook App Key et définissez-le dans la classe TestBB. Mais maintenant je veux poster quelque chose sur mon mur. Donc, j'ai ajouter une nouvelle méthode à la classe FacebookFacade utilisant Stream.publish API:

/*** 
* Publishes message to the stream. 
* @param message - message that will appear on the facebook stream 
* @param targetId - The ID of the user, Page, group, or event where 
*  you are publishing the content. 
*/ 
public void streamPublish(String message, String targetId) 
{ 
    Hashtable arguments = new Hashtable(); 
    arguments.put("method", "stream.publish"); 
    arguments.put("message", message); 
    arguments.put("target_id", targetId); 
    try { 
     JSONObject result = new JSONObject(
     int new JSONTokener(sendRequest(arguments)));    
     int errorCode = result.getInt("error_code"); 
     if (errorCode != 0) System.out.println("Error Code: "+errorCode); 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
} 

/*** 
* Publishes message on current user wall. 
* @param message - message that will appear on the facebook stream 
*/ 
public void postOnTheWall(String message) 
{ 
    String targetId = String.valueOf(getLoggedInUserId()); 
    streamPublish(message, targetId); 
} 

Cela renvoie le code d'erreur 200, « L'utilisateur n'a pas autorisé l'application à effectuer cette action »

D'abord, je pense que c'est lié avec Facebook -> Paramètres de l'application -> Autorisations supplémentaires -> Publier une activité récente (une des histoires de ligne) à mon mur mais même vérifié, aucune différence ...

ce post J'ai trouvé explique que question liée avec extended permissions.

Cela devrait être fixé par modifying url a little in LoginScreen class:

public LoginScreen(FacebookFacade facebookFacade) { 
    this.facebookFacade = facebookFacade; 

    StringBuffer data = new StringBuffer(); 
    data.append("api_key=" + facebookFacade.getApplicationKey()); 
    data.append("&connect_display=popup"); 
    data.append("&v=1.0"); 
    //revomed 
    //data.append("&next=http://www.facebook.com/connect/login_success.html"); 
    //added  
    data.append("&next=http://www.facebook.com/connect/prompt_permissions.php?" + 
    "api_key="+facebookFacade.getApplicationKey()+"&display=popup&v=1.0"+ 
    "&next=http://www.facebook.com/connect/login_success.html?"+ 
    "xxRESULTTOKENxx&fbconnect=true" + 
    "&ext_perm=read_stream,publish_stream,offline_access");  
data.append("&cancel_url=http://www.facebook.com/connect/login_failure.html"); 
    data.append("&fbconnect=true"); 
    data.append("&return_session=true"); 
    (new FetchThread("http://m.facebook.com/login.php?" 
      + data.toString())).start(); 
} 

Malheureusement, il ne fonctionne pas. Toujours code d'erreur 200 en retour à stream.publish request ...

Avez-vous des suggestions pour résoudre ce problème?

Merci!

Répondre

2

J'ai posté l'API mise à jour sur mon site Web (http://www.baskoro.web.id/facebook-connect-blackberry-HOWTO.html) et ceci devrait résoudre ce problème. S'il vous plaît laissez-moi savoir autrement.

Salam. À votre santé!

Eki

+0

Merci, ça marche et c'est génial! –

+0

Salut, même j'utilise le même code baskaro mais au début j'obtenais l'erreur de paramètre invalide. Après avoir mis votre code pour le constructeur LoginScreen maintenant je reçois le succès mais il n'est pas redirigé vers une autre page. Pouvez-vous s'il vous plaît m'aider dans ce domaine? La page affiche juste le succès et rien d'autre. – sunil

+0

Sunil, ce problème a été résolu. Jetez un oeil à mon site Web ou allez directement sur le site Web du projet Facebook SDK BlackBerry (https://sourceforge.net/projects/facebook-bb-sdk) – Eki

Questions connexes