gpt4 book ai didi

安卓/ Facebook : Insufficient priviledges when using Api

转载 作者:行者123 更新时间:2023-11-29 01:29:55 28 4
gpt4 key购买 nike

在我的主要 Activity 中,我有以下代码:

    FacebookSdk.sdkInitialize(getApplicationContext());

我还添加了一个按钮,用于在我的 Facebook 时间轴上创建帖子:

Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("https://developers.facebook.com"))
.build();

ShareApi.share(content, new FacebookCallback<Sharer.Result>() {

@Override
public void onSuccess(Result arg0) {
// TODO Auto-generated method stub

}

@Override
public void onError(FacebookException arg0) {
// TODO Auto-generated method stub

}

@Override
public void onCancel() {
// TODO Auto-generated method stub

}
});


}

当我在智能手机上运行我的应用程序并单击按钮时,我总是会收到以下消息(onError 回调):

Insufficient permissions for sharing content via Api.

我已经在 list 文件中配置了 com.facebook.app.FacebookContentProvider、com.facebook.sdk.ApplicationId、com.facebook.FacebookActivity。并且还在 Facebook 上注册了我的应用程序。

请问缺少什么?我应该在我的应用程序上添加 Facebook 登录按钮吗?

最佳答案

我发现当 AccessToken.getCurrentAccessToken() 返回 null 时会发生此错误。因此,在使用 ShareAPI 之前,我必须明确向 Facebook 进行身份验证。

我在 Facebook 的源代码中看到了它,网址为 http://android-education-project.googlecode.com/svn/trunk/facebook_4_0_0/src/com/facebook/share/ShareApi.java。 :

/**
* Share the content.
*
* @param callback the callback to call once the share is complete.
*/
public void share(FacebookCallback<Sharer.Result> callback) {
if (!this.canShare()) {
ShareInternalUtility.invokeCallbackWithError(
callback, "Insufficient permissions for sharing content via Api.");
return;
}
final ShareContent shareContent = this.getShareContent();

// Validate the share content
try {
ShareContentValidation.validateForApiShare(shareContent);
} catch (FacebookException ex) {
ShareInternalUtility.invokeCallbackWithException(callback, ex);
return;
}

if (shareContent instanceof ShareLinkContent) {
this.shareLinkContent((ShareLinkContent) shareContent, callback);
} else if (shareContent instanceof SharePhotoContent) {
this.sharePhotoContent((SharePhotoContent) shareContent, callback);
} else if (shareContent instanceof ShareVideoContent) {
this.shareVideoContent((ShareVideoContent) shareContent, callback);
} else if (shareContent instanceof ShareOpenGraphContent) {
this.shareOpenGraphContent((ShareOpenGraphContent) shareContent, callback);
}

}

/**
* Returns true if the current access token has the publish_actions permission.
*
* @return true if the current access token has the publish_actions permission, false otherwise.
*/
public boolean canShare() {
if (this.getShareContent() == null) {
return false;
}
final AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken == null) {
return false;
}
final Set<String> permissions = accessToken.getPermissions();
if (permissions == null) {
return false;
}
return (permissions.contains("publish_actions"));
}

关于安卓/ Facebook : Insufficient priviledges when using Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31773185/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com