Java 未能完成我刚刚成功分享的fb喜欢帖子
我已将我的android应用程序的url共享到FB: 然后我将posted(硬编码)保存在一旁 我试着对那个帖子做“fb式”的报道 使用此代码,但出现错误:Java 未能完成我刚刚成功分享的fb喜欢帖子,java,android,facebook,facebook-graph-api,facebook-sdk-3.0,Java,Android,Facebook,Facebook Graph Api,Facebook Sdk 3.0,我已将我的android应用程序的url共享到FB: 然后我将posted(硬编码)保存在一旁 我试着对那个帖子做“fb式”的报道 使用此代码,但出现错误: Button socialBtn3 = (Button) dialog .findViewById(R.id.socialBtn3); socialBtn3.setOnClickListener(new OnClickListener() {
Button socialBtn3 = (Button) dialog
.findViewById(R.id.socialBtn3);
socialBtn3.setOnClickListener(new OnClickListener() {
String fbPostId = "685560152_10153809399380153";
@Override
public void onClick(View v) {
new LikeFbPostAsyncTask().execute(fbPostId);
}
});
这是:
public class LikeFbPostAsyncTask extends AsyncTask<String, Void, Void> {
public LikeFbPostAsyncTask() {
}
@Override
protected void onPreExecute() {
Log.i("LikeFbPostAsyncTask", "Starting web task...");
}
@Override
protected Void doInBackground(String... fbPostId) {
Request likeRequest = new Request(Session.getActiveSession(),
fbPostId + "/likes", null, HttpMethod.POST,
new Request.Callback() {
@Override
public void onCompleted(Response response) {
Log.i(TAG, response.toString());
// how to return to ui thread?
// return response;
}
});
Request.executeBatchAndWait(likeRequest);
return null;
}
@Override
protected void onPostExecute(Void res) {
}
}
像EFBPostaSyncTask这样的公共类扩展了AsyncTask{
公共类EFBPostaSyncTask(){
}
@凌驾
受保护的void onPreExecute(){
Log.i(“LikeFbPostAsyncTask”,“启动web任务…”);
}
@凌驾
受保护的Void doInBackground(字符串…fbPostId){
Request likeRequest=新请求(Session.getActiveSession(),
fbPostId+“/likes”,null,HttpMethod.POST,
新的Request.Callback(){
@凌驾
未完成公共无效(响应){
Log.i(TAG,response.toString());
//如何返回ui线程?
//返回响应;
}
});
Request.executeBatchHandWait(如请求);
返回null;
}
@凌驾
受保护的void onPostExecute(void res){
}
}
{响应:响应代码:404,graphObject:null,错误:{HttpStatus:
404,错误代码:803,错误类型:OAutheException,错误消息:(#803)
您请求的某些别名不存在:
[Ljava.lang.String;@4284cd10},isFromCache:false}
如何解决此问题?您正在向AsyncTask发送字符串参数数组(
String…
)。
从数组中提取所需字符串时,应执行以下操作:
Request likeRequest = new Request(Session.getActiveSession(),
fbPostId[0] + "/likes", null, HttpMethod.POST,
new Request.Callback() {
而不是:
Request likeRequest = new Request(Session.getActiveSession(),
fbPostId + "/likes", null, HttpMethod.POST,
new Request.Callback() {
我认为您不需要
AsyncTask
,因为facebookexecBatchandWait
也会以异步方式执行请求。下次我怎么知道这一点?这肯定是写在哪里的?我不确定您的意思是什么,我如何解决我的问题?我在哪里可以验证execBatchandWait也执行以异步方式发送请求