Теперь я использую модифицированный, OkHttp и facebook sdk для регистрации в facebook. Но у меня проблемы с моим методом регистрации «Fail:: java.lang.IllegalStateException: ожидается BEGIN_OBJECT, но был STRING в строке 1, столбец 1, путь $». Не могли бы вы посмотреть на что, пожалуйста? Вот мой код. Это событие facebook resignter.
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
try {
user_id = response.getJSONObject().get("id") + "";
Log.i("User id", user_id);
register(user_id);
setProfile();
} catch (JSONException e) {
e.printStackTrace();
}
try {
response.getJSONObject().get("id");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender, birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
Это мой метод регистрации.
public void register(String id){
String pic_link="https://graph.facebook.com/" + id + "/picture?type=large";
Call<HashMap<String,String>> register= Login_api.createService(Login_service.class).register(id,pic_link);
register.enqueue(new Callback<HashMap<String, String>>() {
@Override
public void onResponse(Response<HashMap<String, String>> response, Retrofit retrofit) {
Log.i("SUCCESS:","MOTHER FUCKER");
}
@Override
public void onFailure(Throwable t) {
Log.i("Fail:",t.getMessage());
}
});
}
Это мой класс API
public class Login_api {
private static Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("http://192.168.0.111")
.addConverterFactory(GsonConverterFactory.create())
.client(new MyOkHttp());
public Login_api(){
}
public static <S> S createService(Class<S> serviceClass) {
Retrofit retrofit = builder.build();
return retrofit.create(serviceClass);
}
}
А это мой сервисный интерфейс
public interface Login_service {
@FormUrlEncoded
@POST("androidapi/public/post/store")
Call<HashMap<String,String>> register(
@Field("user_name") String user_name,
@Field("profile_pic") String profile_pic
);
}