我现在正在使用改装,OkHttp和facebook sdk来进行facebook注册。但我的注册方法有问题“Fail :: java.lang.IllegalStateException:预期BEGIN_OBJECT但是STRING在第1行第1列路径$”。你能看一下吗?这是我的代码。这是facebook resigter事件。
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
);
}
答案 0 :(得分:0)
如果没有更多的堆栈跟踪,很难说肯定,但我会说你的后端没有响应有效的JSON(http://192.168.0.111),因为你得到的错误信息是Gson发现的东西除了{
作为回复中的第一个字符。