Я собираюсь найти приложение, которое извлекает информацию из поиска в Facebook, поэтому мне нужно войти в Facebook. Я зарегистрировал свое приложение на сайте разработчиков Facebook и получил ключ API и секретный ключ. в моем коде я получаю исключение при попытке войти в систему. Вот мой код для входа в Facebook:
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();
}
}
Я получаю следующее исключение:
org.apache.commons.httpclient.HttpMethodBase
processResponseHeaders
ВНИМАНИЕ: cookie отклонено: "$ Version = 0;
$ Домен = удален; $ Path = /;
$ Domain = .facebook.com ". Имя файла cookie
не может начинаться с $
Ответ: 200
8 июня 2010 14:07:36
org.apache.commons.httpclient.HttpMethodBase
processResponseHeaders
ВНИМАНИЕ: cookie отклонено: "$ Version = 0;
$ Path = исключить; $ Path = /;
$ Domain = .facebook.com ". Имя файла cookie
может не начинаться с $
Facebook возвращает код ошибки 100
com.facebook.api.FacebookException:
Неверный параметр
- v -> 1,0
на com.facebook.api.FacebookRestClient.callMethod (FacebookRestClient.java:828)
- auth_token -> 004e90dc8818d5f0921d1065d24508d3
на com.facebook.api.FacebookRestClient.callMethod (FacebookRestClient.java:606)
- метод -> 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)
Здесь может быть проблема с созданием сессии, я искал все решения в сети, но не смог помочь мне получить логин.
Пожалуйста, помогите мне, если вы можете предложить мне какой-то способ решить эту проблему. Я благодарю вас за ваше ценное предложение.