사용자의 벽에 게시물을 게시하고 싶습니다. Facebook은 테스터와 개발자 만 벽에 게시 할 수 있도록 허용합니다. 이미 테스터 목록에 사용자를 추가했습니다. 게시 권한을 얻으려고하면 사용자가 이미 스크린 샷과 같이 권한을 부여한 다음 반환합니다. 나는 허가 또는 벽에 게시 할 수 없습니다. 게다가 callback의 어떤 메소드도 호출되지 않는다.테스트 사용자 Facebook에서 게시 권한을 얻을 수 없습니다. Android
코드는
나는 페이스 북 예 RPSSample의 코드 따랐다.
//Publish to wall
public void publishResult() {
registerPublishPermissionCallback();
if (canPublish()) { //see definition below
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(urlToPost))
.build();
ShareApi.share(content, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
callback.didShareOnFacebookSuccessfully();
}
@Override
public void onCancel() {
// This should not happen
}
@Override
public void onError(FacebookException error) {
showToast(error.getMessage());
}
});
}
}
//check if user has permission or not
private boolean canPublish() {
final AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken != null) {
if (accessToken.getPermissions().contains(AppConstants.ADDITIONAL_PERMISSIONS)) {
// if we already have publish permissions, then go ahead and publish
return true;
} else {
// otherwise we ask the user if they'd like to publish to facebook
new AlertDialog.Builder(activity)
.setTitle(R.string.share_with_friends_title)
.setMessage(urlToPost)
.setPositiveButton(R.string.share_with_friends_yes, canPublishClickListener)
.setNegativeButton(R.string.share_with_friends_no, dontPublishClickListener)
.show();
return false;
}
}
return false;
}
//If user allows, ask Facebook to grant publish_action permission
private DialogInterface.OnClickListener canPublishClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (AccessToken.getCurrentAccessToken() != null) {
// if they choose to publish, then we request for publish permissions
LoginManager.getInstance()
.setDefaultAudience(DefaultAudience.FRIENDS)
.logInWithPublishPermissions(activity,
Arrays.asList(AppConstants.ADDITIONAL_PERMISSIONS));
}
}
};
//Callback - Any of the method doesn't call.
private void registerPublishPermissionCallback() {
LoginManager.getInstance().registerCallback(
callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken.getPermissions().contains(AppConstants.ADDITIONAL_PERMISSIONS)) {
publishResult();
} else {
handleError("Not enough permissions to publish");
}
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
handleError(exception.getMessage());
}
private void handleError(String errorMessage) {
// this means the user did not grant us write permissions, so
// we don't do implicit publishes
showToast(errorMessage);
}
}
);
}
내 앱이 콘솔에 있습니다. 테스트 사용자에게 게시 권한을 부여하려면 Facebook의 요구 사항을 안내하십시오. 감사.
facebook에서 앱을 삭제하고 다시 시도하면 정상적으로 작동합니다. [페이스 북에서 앱을 삭제하는 법] (https://www.facebook.com/help/170585223002660). 다시 설치 한 후에는 공유 한 화면 대신 게시 권한을 요청해야합니다. –
죄송하지만 앱을 삭제하는 것은 해결책이 아닙니다. – NightFury