使用facebook SDK 3.5和Android4设备(三星xcover2)。
我正试着挑选朋友贴到墙上。
前提条件:
- FBAndroid-3.5.apk从SDK安装,启动并验证
- HellobookSample.apk:更改canPresentShareDialog标志以强制使用Request而不是FacebookDialog.ShareDialogBuilder()
// canPresentShareDialog = FacebookDialog.canPresentShareDialog()
canPresentShareDialog = false;
步骤:
(我需要这样做,因为我想限制允许的观众)
- 打开示例应用程序
- 单击"使用facebook登录"
=>用户已登录 - 挑选一些朋友
-
状态更新后
=>request.executeSync();
结果:请求未完成。条目未过帐。没有诊断消息。
然而,它通常会反过来:先发帖子,然后挑选朋友。
根据未知变量(外部温度,太阳风?),上述主要用例可能会成功。如果示例应用程序有这种情绪,强制停止并重新启动有时会有所帮助。如果我在没有FBAndroid-3.5.apk的情况下运行,用例通常会更加不可靠。
我只想要一个零状态,从那里我可以成功地运行用例。
FacebookDialog.ShareDialogBuilder()似乎正在工作。如果它支持观看者限制,我会使用它。
代码
以下是示例应用程序的代码片段。(我特别提到了canPresentShareDialog=false,这也可以通过卸载facebook原生apk来完成)。
private void postStatusUpdate() {
if (canPresentShareDialog) {
FacebookDialog shareDialog = createShareDialogBuilder().build();
uiHelper.trackPendingDialogCall(shareDialog.present());
} else if (user != null && hasPublishPermission()) {
final String message = getString(R.string.status_update, user.getFirstName(), (new Date().toString()));
Request request = Request
.newStatusUpdateRequest(Session.getActiveSession(), message, place, tags, new Request.Callback() {
@Override
public void onCompleted(Response response) {
showPublishResult(message, response.getGraphObject(), response.getError());
}
});
Log.i("MYAPP", "request executeAsync() ");
request.executeAsync();
} else {
pendingAction = PendingAction.POST_STATUS_UPDATE;
}
}
完整活动可在以下位置查看:
https://github.com/facebook/facebook-android-sdk/blob/master/samples/HelloFacebookSample/src/com/facebook/samples/hellofacebook/HelloFacebookSampleActivity.java
这似乎是我的限制性防火墙造成的。S**t。