与ShareApi共享OpenGraphStore.Share FacebookSDK,android

与ShareApi共享OpenGraphStore.Share FacebookSDK,android,android,facebook,facebook-graph-api,facebook-opengraph,Android,Facebook,Facebook Graph Api,Facebook Opengraph,我正在尝试从我的android应用程序共享opengraph对象。这是我的密码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(this.getApplicationContext()); Log.d(TAG, "SDK inicijalizirano");

我正在尝试从我的android应用程序共享opengraph对象。这是我的密码:

     @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this.getApplicationContext());
    Log.d(TAG, "SDK inicijalizirano");
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    accessToken = loginResult.getAccessToken();
                    Log.d("Success", accessToken.getToken());
                    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
                            .putString("og:type", "books.book")
                            .putString("og:title", "A Game of Thrones")
                            .putString("og:description", "In the frozen S")
                            .putString("books:isbn", "0-553-57340-3")
                            .build();
                    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
                            .setActionType("books.reads")
                            .putObject("book", object)
                            .putBoolean("fb:explicitly_shared", true)
                            .build();
                    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
                            .setPreviewPropertyName("book")
                            .setAction(action)
                            .build();
                    ShareLinkContent linkcontent = new ShareLinkContent.Builder()
                            .setContentUrl(Uri.parse("https://developers.facebook.com"))
                            .build();

                    ShareApi.share( content, new FacebookCallback<Sharer.Result>() {
                        @Override
                        public void onSuccess(Sharer.Result result) {
                            Log.d(TAG, "Story posted! " + result);
                        }

                        @Override
                        public void onCancel() {
                            Log.d(TAG, "canceled");
                        }

                        @Override
                        public void onError(FacebookException e) {
                            Log.d(TAG, "error posting: " + e.getMessage());

                        }
                    });


                }

                @Override
                public void onCancel() {
                    Log.d(TAG, "Canceled");
                }

                @Override
                public void onError(FacebookException exception) {
                    Log.d(TAG, "Not OK");
                    if (exception instanceof FacebookAuthorizationException) {
                        if (AccessToken.getCurrentAccessToken() != null) {
                            LoginManager.getInstance().logOut();
                        }
                    }
                }
            });

    setContentView(R.layout.activity_check_in);
    shareOnFacebookBox=(CheckBox) findViewById(R.id.share_on_facebook_checkbox);

    shareOnFacebookBox.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(shareOnFacebookBox.isChecked()){
                Log.d(TAG, "chekirano");
                if(AccessToken.getCurrentAccessToken()!=null){
                    LoginManager.getInstance().logOut();
                }
                LoginManager.getInstance().logInWithPublishPermissions(ActivityCheckIn.this, PERMISSIONS);

            }else{
                System.out.println("Un-Checked");
            }
        }
    });
这是我的

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);}
注意:Im成功登录,它在日志中打印accessToken,而不是应用程序崩溃


先谢谢你

我建议您使用我们最新的SDK和RPSSample&scrumpious捆绑示例来尝试这一点。您将了解如何处理ActivityResult()。。。etcI建议您使用我们最新的SDK和RPSSample&Scrumpious捆绑示例来尝试这一点。您将了解如何处理ActivityResult()。。。等
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);}