Androidプラットフォーム共有のFacebook

3338 ワード

共有する前に準備をしたり、Facebook Developerに申請したり、自分のアプリケーションを追加したりする必要があります.ここではこれらの準備を繰り返さず、直接公式サイトに行って流れに従って申請することができます.注意が必要なのは記入に関するサインです.テスト署名と正式署名に分けられ、両者は異なります.また、テストの過程で、この署名について開発者に記入していないことを示す可能性があります.誤って提示された署名を記入する必要があります.
インベントリファイルの構成




// appkey , xml 。 
 
  • FacebookSDKを初期化します.(最新バージョンのsdkを直接ASにインポート)
  • // application
    FacebookSdk.sdkInitialize(getApplicationContext());
    
  • コールバックマネージャ
  • を初期化する.
    mCManager = CallbackManager.Factory.create();
    
  • 共有
  • // 
    ShareDialog mFBShareDialog = new com.facebook.share.widget.ShareDialog(mActivity);
    // 
    mFBShareDialog.registerCallback(mCallbackManager, new FacebookCallback() {
        @Override
        public void onSuccess(Sharer.Result result) {
            Log.i(TAG, "onSuccess");
            Toast.makeText(mActivity, mActivity.getString(R.string.WEIBO_SHARE_SUCCESS),
                    Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onCancel() {
            Log.i(TAG, "onCancel");
            Toast.makeText(mActivity, mActivity.getString(R.string.WEIBO_SHARE_CANCELED),
                    Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onError(FacebookException error) {
            error.printStackTrace();
        }
    });
    if ( com.facebook.share.widget.ShareDialog.canShow(ShareLinkContent.class) ) {
    //ShareLinkContent , 。
        /*ShareLinkContent.Builder mShareLinkBuilder = new ShareLinkContent.Builder();
        *//*if( contetUrl != null ) {
            mShareLinkBuilder.setContentUrl(Uri.parse(contetUrl));
        }*//*
        Log.i(TAG, "title = " + title + " contentUrl = " + contetUrl + " imgUrl = " + imgUrl);
        mShareLinkBuilder.setContentUrl(Uri.parse(contetUrl));
        mShareLinkBuilder.setContentTitle(title);
        //mShareLinkBuilder.setContentDescription("sdasdasdasdasdsdsadasdsadasdasdsdasdsadsadasdsadsdasdasdasdasdasd");
        mShareLinkBuilder.setImageUrl(Uri.parse(imgUrl));
        ShareLinkContent mShareLink = mShareLinkBuilder.build();
        mFBShareDialog.show(mShareLink);*/
    //SharePhoto , 
        SharePhoto mSharePhoto = new SharePhoto.Builder()
                .setCaption(title)
                .setBitmap(bitmap)
                .build();
        SharePhotoContent mContent = new SharePhotoContent.Builder()
                .addPhoto(mSharePhoto)
                .build();
        mFBShareDialog.show(mContent);
        if ( bitmap != null && !bitmap.isRecycled() ) {
            bitmap.recycle();
        }
    }
    
  • 共有結果を設定すると
  • に戻る.
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {    
            super.onActivityResult(requestCode, resultCode, data);    
            mCManager.onActivityResult(requestCode, resultCode, data);
    }