如何通过一个完美的例子在 facebook sdk 4+ 中获得 post 权限 publish_actions
How to get post permission publish_actions in facebook sdk 4+ with an perfect example
我无法获得 facebook sdk4+ 的 publish_actions 许可,我遇到了问题,我发现没有合适的示例可用。如果有人有解决方案,请在此处执行 post。我发现老版本的解决方案被大家展示了,但是没有找到 sdk4+ 的解决方案。
LoginManager loginManager = LoginManager.getInstance();
loginManager.logInWithPublishPermissions(this, permissionNeeds);
Log.e("publish_action", "asking_for_permission");
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>()
{
@Override
public void onSuccess(LoginResult loginResult)
{
if (AccessToken.getCurrentAccessToken().getPermissions().contains("publish_actions"))
{
Log.e("publish_action", "permission_activated");
Bitmap image = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
try {
Log.e("publish_action", "permission_activated_inside_try");
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(image)
.setCaption("A post from Android code")
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.addPhoto(photo)
.addPhoto(photo)
.build();
ShareApi.share(content, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Log.e("successfull", "photo_uploaded");
}
@Override
public void onCancel() {
Log.e("canceled", "photo_uploaded_cancled");
}
@Override
public void onError(FacebookException error) {
Log.e("error", "photo_upload_error");
}
});
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public void onCancel() {
System.out.println("onCancel");
Log.e("publish_action", "cancel");
}
@Override
public void onError(FacebookException exception) {
Log.e("publish_action", "error = " + exception.getMessage());
System.out.println("onError");
}
});
我发现了这个 link 你一定要试试这个 url 这是一个完美的演示 publish_actions facebokk 许可它对我很有帮助。
我遇到了同样的问题,解决方案是
if (!AccessToken.getCurrentAccessToken().getPermissions().contains("PERMISSION_THAT_YOU_NEED")) {
LoginManager.getInstance().logInWithPublishPermissions((Activity) viewInterface.getContext(), Arrays.asList("PERMISSION_THAT_YOU_NEED"));
return;
你需要在使用logInWithPublishPermissions()后return,因为用户可能不允许你使用它,但你的代码会继续运行。如果用户提供对此权限的访问权限,代码将在下次成功完成。
试试这个,希望对你有帮助。
我无法获得 facebook sdk4+ 的 publish_actions 许可,我遇到了问题,我发现没有合适的示例可用。如果有人有解决方案,请在此处执行 post。我发现老版本的解决方案被大家展示了,但是没有找到 sdk4+ 的解决方案。
LoginManager loginManager = LoginManager.getInstance();
loginManager.logInWithPublishPermissions(this, permissionNeeds);
Log.e("publish_action", "asking_for_permission");
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>()
{
@Override
public void onSuccess(LoginResult loginResult)
{
if (AccessToken.getCurrentAccessToken().getPermissions().contains("publish_actions"))
{
Log.e("publish_action", "permission_activated");
Bitmap image = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
try {
Log.e("publish_action", "permission_activated_inside_try");
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(image)
.setCaption("A post from Android code")
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.addPhoto(photo)
.addPhoto(photo)
.build();
ShareApi.share(content, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Log.e("successfull", "photo_uploaded");
}
@Override
public void onCancel() {
Log.e("canceled", "photo_uploaded_cancled");
}
@Override
public void onError(FacebookException error) {
Log.e("error", "photo_upload_error");
}
});
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public void onCancel() {
System.out.println("onCancel");
Log.e("publish_action", "cancel");
}
@Override
public void onError(FacebookException exception) {
Log.e("publish_action", "error = " + exception.getMessage());
System.out.println("onError");
}
});
我发现了这个 link 你一定要试试这个 url 这是一个完美的演示 publish_actions facebokk 许可它对我很有帮助。
我遇到了同样的问题,解决方案是
if (!AccessToken.getCurrentAccessToken().getPermissions().contains("PERMISSION_THAT_YOU_NEED")) {
LoginManager.getInstance().logInWithPublishPermissions((Activity) viewInterface.getContext(), Arrays.asList("PERMISSION_THAT_YOU_NEED"));
return;
你需要在使用logInWithPublishPermissions()后return,因为用户可能不允许你使用它,但你的代码会继续运行。如果用户提供对此权限的访问权限,代码将在下次成功完成。
试试这个,希望对你有帮助。