我正在尝试从我的 android 应用程序将图像发布到 facebook 墙上。我正在使用 facebook sdk。
从我MainActivity
调用FBConnectionActivity
获取连接和 ID 时,我得到一个空指针异常
我正在调用这样的 2 种方法:-
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
setConnection();
getID();
}
}
在 中FBConnectionActivity
,这两种方法定义为:
public void setConnection() {
mContext = this;
mFacebook = Utility.mFacebook;
mAsyncRunner = new AsyncFacebookRunner(mFacebook);
}
public void getID(TextView txtUserName, ProgressBar progbar) {
username = txtUserName;
pb = progbar;
if (isSession()) {
Log.d(TAG, "sessionValid");
mAsyncRunner.request("me", new IDRequestListener());
} else {
// no logged in, so relogin
Log.d(TAG, "sessionNOTValid, relogin");
mFacebook.authorize(this, PERMS, new LoginDialogListener());
}
}
public void getID(){
if (isSession()) {
Log.d(TAG, "sessionValid");
mAsyncRunner.request("me", new IDRequestListener());
} else {
// no logged in, so relogin
Log.d(TAG, "sessionNOTValid, relogin");
mFacebook.authorize(this, PERMS, new LoginDialogListener());
}
}
在对 的调用中isSession()
,对方法的方法调用isSessionValid()
总是返回 false。
public boolean isSession() {
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
String access_token = sharedPrefs.getString("access_token", "x");
Long expires = sharedPrefs.getLong("access_expires", -1);
Log.d(TAG, access_token);
if (access_token != null && expires != -1) {
Log.e("isSession() method ", "acess_token : " + access_token );
mFacebook.setAccessToken(access_token);
mFacebook.setAccessExpires(expires);
}
return mFacebook.isSessionValid();
}
public boolean isSessionValid() {
return (getAccessToken() != null) &&
((getAccessExpires() == 0) ||
(System.currentTimeMillis() < getAccessExpires()));
}
如果我的会话无效,我如何获得新的有效访问令牌。每次我尝试从我的应用程序上传图像时,该方法isSessionValid()
都会返回 false。我也收到以下错误:-
01-18 12:46:35.928: D/Facebook-Example(28459): Response: {"error_code":101,"error_msg":"Invalid API key","request_args":[{"key":"method","value":"photos.upload"},{"key":"format","value":"json"}]}
01-18 12:46:35.948: W/Facebook-Example(28459): Facebook Error: Invalid API key
请帮我。
我正在使用以下方法在 facebook 上发布图像。这里有什么问题吗?
public void postImageonWall() {
Log.e("BrowsePictureActivity ", "Inside postImageonWall method");
byte[] data = null;
Bitmap bi = BitmapFactory.decodeFile(selectedImagePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();
Log.d("BrowsePictureActivity ", "data.length : " + data.length);
Bundle params = new Bundle();
params.putString("method", "photos.upload");
params.putByteArray("picture", data);
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request(null, params, "POST", new SampleUploadListener(),
null);
}