Android

Android SNS 공유하기 - facebook

Machine_웅 2021. 1. 15. 11:17
728x90
반응형

사전 준비물

- 페이스북 개발자 계정

 

developers.facebook.com/docs/sharing/android

 

Android - 공유 - 문서 - Facebook for Developers

 

developers.facebook.com

 

compile 'com.facebook.android:facebook-share:[5,6)'

 

 

1. Open your /app/res/values/strings.xml file.

2. Add a string element with the name attribute facebook_app_id and value as your Facebook App ID to the file. For example

<string name="facebook_app_id">Facebook App ID</string>

3. Open /app/manifests/AndroidManifest.xml

4. Add a uses-permission element to the manifest:

<uses-permission android:name="android.permission.INTERNET"/>

5. Add a meta-data element to the application element:

<application android:label="@string/app_name" ...>
    ...
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    ...
</application>
<provider android:authorities="com.facebook.app.FacebookContentProvider앱아이디"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true" />

 

 

* 키해시 - 페이스북 디벨로퍼에서 앱을 추가하고 키해시를 등록해줘야한다.

    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
        
    } catch (NoSuchAlgorithmException e) {
        
        

 

content 만들기

1) 이미지

Bitmap image = ...
SharePhoto photo = new SharePhoto.Builder()
        .setBitmap(image)
        .build();
SharePhotoContent content = new SharePhotoContent.Builder()
        .addPhoto(photo)
        .build();

2) 동영상

Uri videoFileUri = ...
ShareVideo = new ShareVideo.Builder()
        .setLocalUrl(videoUrl)
        .build();
ShareVideoContent content = new ShareVideoContent.Builder()
        .setVideo(video)
        .build();
        

3) 멀티미디어

 

공유 대화 상자를 사용하여 앱에 있는 사진과 동영상을 포함하는 콘텐츠를 Facebook에 공유할 수 있습니다. 유의 사항은 다음과 같습니다.

  • Android용 기본 Facebook 앱 7.1 이상 버전이 설치되어 있어야 합니다.

  • 한 번에 최대 6개의 사진과 동영상을 공유할 수 있습니다.

SharePhoto sharePhoto1 = new SharePhoto.Builder()
    .setBitmap(...)
    .build();
SharePhoto sharePhoto2 = new SharePhoto.Builder()
    .setBitmap(...)
    .build();
ShareVideo shareVideo1 = new ShareVideo.Builder()
    .setLocalUrl(...)
    .build();
ShareVideo shareVideo2 = new ShareVideo.Builder()
    .setLocalUrl(...)
    .build();

ShareContent shareContent = new ShareMediaContent.Builder()
    .addMedium(sharePhoto1)
    .addMedium(sharePhoto2)
    .addMedium(shareVideo1)
    .addMedium(shareVideo2)
    .build();

 

공유하기

ShareDialog.show(activityOrFragment, content);
MessageDialog.show(activityOrFragment, content);

 

 

728x90
반응형