Я использую эту библиотеку для интеграции facebook в свое приложение: https://github.com/sromku/android-simple-facebook. Он отлично работает при доступе к профилю, списку друзей и т. Д. Однако, когда я пытаюсь опубликовать фотографию на стене, я использую обычный SDK, но он не работает. В этом случае я не использую библиотеку, потому что она не поддерживает публикацию фотографий на стене/страницах/группах.Facebook Android SDK - можете читать профиль, но не публиковать фотографию на стене
я прохожу сеанс у меня после запроса опубликовать разрешения и запустить этот запрос:
public void uploadToFaceWall() {
Session session = mFaceSession;
if (session != null){
String fbPhotoAddress = null;
Request.Callback uploadPhotoRequestCallback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
if (response.getError() != null) {
Log.d(TAG, "error: "+response.toString()):
}
Object graphResponse = response.getGraphObject().getProperty("id");
if (graphResponse == null || !(graphResponse instanceof String) ||
TextUtils.isEmpty((String) graphResponse)) {
Log.d(TAG, "failed photo upload/no response");
} else {
finish();
}
}
};
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = null;
try {
bitmap = BitmapFactory.decodeFile(myFacePost.getImages().getString(0), options);
} catch (JSONException e) {
e.printStackTrace();
}
Bundle parameters = new Bundle();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
parameters.putByteArray("picture", byteArray);
parameters.putString("message", "Check out my picture");
Request req = new Request(session, "me/photos", parameters, HttpMethod.POST, uploadPhotoRequestCallback);
req.executeAndWait();
}
}
Однако, это не работает, и ответ содержит ошибку:
{Response: responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: java.lang.NullPointerException}, isFromCache:false}
mFaceSession
является сеанс У меня есть после того, как пользователь принял новые разрешения на публикацию.
При отладке я вижу, что сеанс ОТКРЫТО.
Любая идея, почему это не работает?