- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
public class NextActivity extends AppCompatActivity {
CallbackManager callbackManager;
LoginManager manager;
ImageView image;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
Button shareButton = (Button)findViewById(R.id.sharebtn);
image = (ImageView) findViewById(R.id.image);
FacebookSdk.sdkInitialize(getApplicationContext());
shareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkpermission();
}});
}
public void checkpermission(){
final Bundle permBundle = new Bundle();
permBundle.putCharSequence("permission", "publish_actions");
GraphRequest request = new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me/permissions", permBundle, HttpMethod.GET,
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse graphResponse) {
System.out.println("sammy_permission_graph_request "+graphResponse.getJSONObject());
try {
JSONArray permList = (JSONArray) graphResponse.getJSONObject().get("data");
if(permList.length() == 0){
// no data for perms, hence asking permission
getPublishPermission();
}else{
JSONObject permData = (JSONObject) permList.get(0);
String permVal = (String) permData.get("status");
if(permVal.equals("granted")){
sharePhotoToFacebook();
}else{
getPublishPermission();
}
}
} catch (JSONException e) {
System.out.println("sammy_exception while parsing fb check perm data "+e.toString());
}
}
}
);
request.executeAsync();
}
public void getPublishPermission(){
callbackManager = CallbackManager.Factory.create();
manager = LoginManager.getInstance();
manager.logInWithPublishPermissions(
NextActivity.this,
Arrays.asList("publish_actions"));
manager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
System.out.println("sammy_got_publish_permission");
sharePhotoToFacebook();
}
@Override
public void onCancel() {
System.out.println("sammy_cancelled while asking publish permission");
}
@Override
public void onError(FacebookException error) {
System.out.println("sammy_error occurred while asking publish permission!");
}
});
}
private void sharePhotoToFacebook(){
System.out.println("sammy_sharing_started");
try{
Bitmap bm = ((BitmapDrawable)image.getDrawable()).getBitmap();
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(bm)
.setCaption("BMW Vision")
.setUserGenerated(true)
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
ShareApi.share(content, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result)
{
System.out.println("sammy_publish_result "+result);
Toast.makeText(NextActivity.this, "Success in Posting", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel()
{
System.out.println("sammy_shareapi_canceled");
}
@Override
public void onError(FacebookException e)
{
System.out.println("sammy_shareapi_exception "+e);
}
});
}catch (Exception e){
System.out.println("sammy_exception "+e.toString());
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
我正在尝试在后台将图像和文本分享到 Facebook。首先,我检查发布权限是否已被授予。如果不是,我将使用 logInWithPublishPermissions
获取发布权限。但出于某种原因,registerCallback 的响应总是出现在 onCancel()
中。我需要向 logInWithPublishPermissions 添加什么吗?
最佳答案
您必须在 Facebook 开发者网站上授予 publish_actions 权限 https://developers.facebook.com/
请关注link设置您的应用以获取 publish_actions 权限并提交您的应用以供审核。
关于android - Facebook loginwithpublishpermissions 回调不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580581/
public class NextActivity extends AppCompatActivity { CallbackManager callbackManager; Login
我正在实现适用于 iOS 的 SDK v4.1,当我尝试调用 publishPermissions: 时,我没有收到任何回调。 出于某种原因,当我运行 logInWithReadPermissions
我想询问我的 Android 应用程序的用户是否允许在按下自定义共享按钮(它只是一个 ImageView)时在 Facebook 上发布。在按钮的 OnClick 方法上,我执行此 block : C
我无法弄清楚如何让用户登录我的应用程序。 [FBSDKAccessToken currentAccessToken] 为 nil,所以我调用: [[[FBSDKLoginManager alloc]
我是一名优秀的程序员,十分优秀!