Unity2015. 8. 12. 15:31

Unity, Posting, FaceBook, Twitter, No PlugIn


Posting to FaceBook or Twitter on Unity3D without any plugins

- Reference: http://unity3dtrenches.blogspot.kr/2014/07/unity3d-how-to-post-to-facebook-from.html


 앱에서 페이스북에 포스팅하는 기능을 구현하는데는 여러가지 방법이 있습니다. 안드로이드 기준으로는 페이스북 SDK를 이용한다거나, ACTION_SEND Intent를 사용하는 방법입니다. 하지만 유니티에서 사용하려면 플러그인을 사용해야 합니다. 또한 ACTION_SEND의 방법으로는 페이스북에 링크나 텍스트를 올릴 수 없고, 오직 이미지만 포스팅할 수 있죠. 

 본문에서는 유니티의 OpenURL함수를 사용하여 포스팅하는 방법을 소개합니다. 각 플랫폼의 웹브라우저를 사용하는 방법으로써 간단한 코드로 플랫폼 구분없이(Android, iOS, 윈도우) 사용이 가능합니다.


 구현하고자 하는 기능은 다음과 같습니다.

* 구현 기능 : 플러그인 없이 포스팅

 - 'Posting to FaceBook' 버튼 클릭 -> 페이스북에 이미지, 글 및 링크 올리기

 - 'Posting to Twitter' 버튼 클릭 -> 트위터에 링크 올리기



 기능 구현을 위해서는 페이스북 개발자로 등록되어 있어야 하며(http://developers.facebook.com), 페이스북에 앱을 등록해야 합니다. 개발자 등록 설명은 생략하고, 페이스북 앱등록에 관련해서만 다음 절에서 설명하겠습니다.

 

 다음은 작업의 전체 순서입니다.

 #1. 유니티 프로젝트 생성 (Unity3D 작업)

 #2. 페이스북 어플리케이션 등록 및 포스팅 테스트 (Web/디바이스 작업)



* 유니티 프로젝트 생성


1. 유니티에서 새 프로젝트를 생성하고 Android플랫폼, Bundle Identifier를 설정합니다. (Scene은 MainScene으로 저장)



2. Canvas를 생성하고, 하위에 버튼을 생성합니다. Canvas는 다음과 같이 임의로 설정했습니다.


3. 'Button'의 이름을 'BtnFaceBook'으로 수정하고, 대충의 위치를 설정합니다.


4. 'UIManager' 이름으로 C# Script를 생성하고, Canvas의 컴포넌트로 지정합니다.


5. UIManager.cs에 다음을 코딩합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using UnityEngine;
using System.Collections;
 
public class UIManager : MonoBehaviour {
 
    const string FACEBOOK_APP_ID = "0123456789xxxx";
    const string FACEBOOK_URL = "http://www.facebook.com/dialog/feed";
    const string TWITTER_ADDRESS = "http://twitter.com/intent/tweet";
 
    public static void ShareToFacebook(
        string linkParameter, string nameParameter, string captionParameter,
        string descriptionParameter, string pictureParameter, string redirectParameter
        )
    {
        Application.OpenURL(FACEBOOK_URL + "?app_id=" + FACEBOOK_APP_ID +
        "&link=" + WWW.EscapeURL(linkParameter) +
        "&name=" + WWW.EscapeURL(nameParameter) +
        "&caption=" + WWW.EscapeURL(captionParameter) +
        "&description=" + WWW.EscapeURL(descriptionParameter) +
        "&picture=" + WWW.EscapeURL(pictureParameter) +
        "&redirect_uri=" + WWW.EscapeURL(redirectParameter));
    }
 
    public static void ShareToTwitter(string textToDisplay, string language)
    {// language: "en", "kor", "jap"
        Application.OpenURL(TWITTER_ADDRESS +
                    "?text=" + WWW.EscapeURL(textToDisplay) +
                    "&lang=" + WWW.EscapeURL(language));
    }
    
    public void OnBtnFaceBook()
    {
        ShareToFacebook(
            "http://sunbug.net",            // linkParameter
            "My Funny Game",                // nameParameter
            "My Caption Message",           // captionParameter
            "My Description Message",       // descriptionParameter
            "https://www.google.co.kr/images/srpr/logo11w.png"//pictureParameter
            "http://www.facebook.com"       // redirectParamter
            );
    }
 
    public void OnBtnTwitter()
    {
        ShareToTwitter("http://sunbug.net""kor");
    }
 
}
 
 
cs


- FACEBOOK_APP_ID : 페이스북 앱의 아이디입니다. '페이스북 어플리케이션 등록'에서 설명합니다.

- public static void ShareToFaceBook( ) : 페이스북에 포스팅하는 함수입니다(편의상 static로 지정). 각 인자는 다음과 같습니다.


> linkParameter: 링크할 URL

> nameParameter: 제목

> captionParameter; 이미지 설명

> descriptionParameter: 본문

> pictureParameter: 이미지 URL

> redirectParameter: 포스팅 후 연결할 URL . 보통 http://www.facebook.com으로 합니다.


6. BtnFaceBook의 OnClick 이벤트를 지정합니다. Object에는 Canvas를, Function에는 UIManager::OnBtnFaceBook()을 설정합니다.


7. BtnTwitter을 생성하고 위와 마찬가지로 UIManager::OnBtnTwitter()으로 이벤트 설정을 합니다.


8. 페이스북 개발자 페이지에서 어플리케이션 생성/등록을 합니다. 

  ( 다음을 참조하세요: 유니티 - 플러그인 없이 페이스북 및 트위터에 포스팅하기 #2/2 )






Posted by GNUPart