Je vais pour une application qui extrait des informations de la recherche facebook, d'où j'ai besoin de se connecter à facebook. J'ai enregistré mon application dans le site des développeurs de facebook et j'ai la clé api et la clé secrète. dans mon code je reçois une exception quand j'essaye de me connecter. Voici mon code pour se connecter à facebook:FaceBook Connexion Problème
import com.facebook.api.FacebookRestClient;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpState;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpClientParams;
public class FaceLogin {
public FaceLogin(){
getUserID("username", "password");
}
private static void getUserID(String email, String password)
{
String session = null;
try {
HttpClient http = new HttpClient();
http.setParams(new HttpClientParams()); //http.getHostConfiguration().setHost("http://www.facebook.com/");
http.setState(new HttpState());
String api_key = "***********some key*************";
String secret = "***********some key*************";
FacebookRestClient client = new FacebookRestClient(api_key, secret);
client.setIsDesktop(true);
String token = client.auth_createToken();
final String loginId = "http://www.facebook.com/login.php";
GetMethod get = new GetMethod(loginId + "?api_key=" + api_key + "&v=1.0&auth_token=" +token);
System.out.println("Get="+get);
http.executeMethod(get);
PostMethod post = new PostMethod(loginId);
post.addParameter(new NameValuePair("api_key", api_key));
post.addParameter(new NameValuePair("v", "1.0"));
post.addParameter(new NameValuePair("auth_token", token));
post.addParameter(new NameValuePair("fbconnect","true"));
post.addParameter(new NameValuePair("return_session","true"));
post.addParameter(new NameValuePair("session_key_only","true"));
post.addParameter(new NameValuePair("req_perms","read_stream,publish_stream"));
post.addParameter(new NameValuePair("lsd","8HYdi"));
post.addParameter(new NameValuePair("locale","en_US"));
post.addParameter(new NameValuePair("persistent","1"));
post.addParameter(new NameValuePair("email", email));
post.addParameter(new NameValuePair("pass", password));
System.out.println("Token ="+token);
int postStatus = http.executeMethod(post);
System.out.println("Response : " + postStatus);
session = client.auth_getSession(token); // Here I am getting error
System.out.println("Session string: " + session);
long userid = client.users_getLoggedInUser();
System.out.println("User Id is : " + userid);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String k[])
{
FaceLogin facebookLoginObj=new FaceLogin();
}
}
Je reçois l'exception suivante:
org.apache.commons.httpclient.HttpMethodBase processResponseHeaders
AVERTISSEMENT: Cookie rejeté: " $ Version = 0; $ Domain = supprimé; $ Path = /; $ Domain = .facebook.com ". Le nom de cookie ne peut pas commencer par
$Réponse: 200
8 juin 2010 14:07:36 org.apache.commons.httpclient.HttpMethodBase processResponseHeaders
AVERTISSEMENT: Cookie rejeté: "$ Version = 0; $ Chemin = supprimé; $ Chemin = /; $ Domaine = .facebook.com". Le nom de cookie ne peut pas commencer par
$Facebook renvoie le code d'erreur 100
com.facebook.api.FacebookException: Paramètre non valide - v -> 1,0 à com.facebook.api.FacebookRestClient.callMethod (FacebookRestClient.java:828) - auth_token -> 004e90dc8818d5f0921d1065d24508d3 à com.facebook.api.FacebookRestClient.callMethod (FacebookRestClient.java:606) - méthode -> facebook.auth.getSession - call_id -> 1275986256796 - api_key - > f7cb1e48c383ef599da9021fc4dec322.à com.facebook.api.FacebookRestClient.auth_getSession (FacebookRestClient.java:1891) à facebookcrawler.FacebookLogin.getUserID (FacebookLogin.java:81) à facebookcrawler.FacebookLogin ( - sig -> 9344ec75b74a0a87bcae645046d45da8 FacebookLogin.java: 24) à facebookcrawler.FaceLogin.main (FaceLogin.java:80)
peut être ici le problème est pour la création de session, je recherchais toutes les solutions sur net, mais je ne pouvais pas aidé à obtenir la connexion.
S'il vous plaît aidez-moi si vous pouvez me suggérer un moyen de résoudre ce problème. Je remercie toutes vos précieuses suggestions.