마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

카카오톡 링크 api 질문드립니다...

0 추천

 

카톡링크 를 이용하여 메세지 보내는 것을 연습중인데요...

인터넷에 나온대로 했는데...

저런식으로 오류가 나와서 빌드가 안되고 있습니다.

 

예제와 다른점: 한가지 다른점은 첫번째 임포트에서 link가 두번 들어가 있습니다..

import com.kakao.kakaolink.KakaoLink;
import com.kakao.kakaolink.KakaoTalkLinkMessageBuilder;
import com.kakao.util.KakaoParameterException;

소스는 다음과 같습니다...

참고사이트는 https://ringsterz.wordpress.com/2014/12/10/kakaolink%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EC%95%B1%EC%97%90%EC%84%9C-%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%ED%86%B5%ED%95%B4-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%A0%84%EC%86%A1%ED%95%98/

public class kakaoActivity extends AppCompatActivity {
    //private SessionCallback callback; //콜백 선언
    private KakaoLink kakaoLink;
    private KakaoTalkLinkMessageBuilder kakaoTalkLinkMessageBuilder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //callback = new SessionCallback();                  // 이 두개의 함수 중요함
        //Session.getCurrentSession().addCallback(callback);
        setContentView(R.layout.activity_kakao);

        try {
            kakaoLink = KakaoLink.getKakaoLink(getApplicationContext());
            kakaoTalkLinkMessageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();
            kakaoTalkLinkMessageBuilder.addText("test");
            kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build(), this);
            kakaoTalkLinkMessageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();
        } catch (KakaoParameterException e) {
            Log.e("error",e.getMessage());
        }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="~~~~~~~~~">

    <!--
         The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
         Google Maps Android API v2, but you must specify either coarse or fine
         location permissions for the 'MyLocation' functionality. 
    -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".GlobalApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">
        <activity android:name=".IntroActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".firstActivity"></activity>
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main"
            android:theme="@style/AppTheme.NoActionBar" />
        <!--
             The API key for Google Maps-based APIs is defined as a string resource.
             (See the file "res/values/google_maps_api.xml").
             Note that the API key is linked to the encryption key used to sign the APK.
             You need a different API key for each encryption key, including the release key that is used to
             sign the APK for publishing.
             You can define the keys for the debug and release targets in src/debug/ and src/release/. 
        -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".mapActivity"
            android:label="@string/title_activity_map" />
        <activity android:name=".kakaoActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:host="@string/kakaolink_host"
                    android:scheme="@string/kakao_scheme" />
            </intent-filter>
        </activity>
        <activity android:name=".KakaoSignupActivity" />
        <activity android:name=".talkActivity">

        </activity>

        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="@string/kakao_app_key" />

    </application>

</manifest>

 

앤드류이드 (6,190 포인트) 님이 2017년 3월 7일 질문
앤드류이드님이 2017년 3월 7일 수정

1개의 답변

0 추천
 
채택된 답변

예제가 좀 뭐하네요

변수선언부분을 KakaoTalkLinkMessageBuilder mKakaoTalkLinkMessageBuilder;

로 변경하시고 

사용부분에서 mKakaoTalkLinkMessageBuilder.build()하세요

익명사용자 님이 2017년 3월 8일 답변
앤드류이드님이 2017년 3월 10일 채택됨
똑같네요...오류 나오는게....
https://developers.kakao.com/docs/android-reference/com/kakao/kakaolink/KakaoLink.html#sendMessage(com.kakao.kakaolink.KakaoTalkLinkMessageBuilder, Context)

api설명에는 인자값이 스트링인데

<!--다음은 KakaoTalkLinkMessageBuilder를 통해 구성한 메시지를 KakaoLink#sendMessage(String, Context)-->

레퍼런스에서는 빌더자체를 보내네요.

<!--sendMessage(KakaoTalkLinkMessageBuilder builder, Context context)
메시지 구성을 끝낸 후 카카오톡으로 메시지를 보낸다.-->

사용부분에서 mKakaoTalkLinkMessageBuilder.build()하신후
sendMessage(mKakaoTalkLinkMessageBuilder, Context context)
하세요
...