2016-10-18 4 views
4

나는 MessageDialog API를 통해 페이스 북 메신저에 링크 + 컨텐트를 보내기위한 루틴을 구현했다. 메시지 대화 상자에 링크 컨텐트를 표시하도록 설정했지만 보내기 버튼이 비활성화되었습니다. 나는 이것이 다른 어떤 것보다 구성상의 문제라고 생각한다.Facebook iOS Message Dialog Send Button Disabled

나는 이것을 xamarin의 native ios에서 최신 xamarin facebook sdk (4.15.1 버전)을 사용하여 구현했으며, 나는 sdk 10.0으로 컴파일 중이다. 여기

public bool SendMessageViaMessenger(string Text, string Link) { 
    var content = new ShareLinkContent(); 
    content.SetContentUrl(new NSUrl(Link)); 
    content.ContentTitle = "Here is an invite"; 
    content.ContentDescription = "Test description"; 

    MessageDialog.Show(content, null); 
    return true; 
} 

내의 Info.plist 페이스 북의 설정 부분입니다 : 여기

은 아주 기본적인 구현 {내-FB-앱 ID가} 내 페이스 북으로 대체

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
    <key>CFBundleURLSchemes</key> 
    <array> 
     <string>fb{my-fb-app-id}</string> 
    </array> 
    </dict> 
</array> 
<key>FacebookAppID</key> 
<string>{my-fb-app-id}</string> 
<key>FacebookDisplayName</key> 
<string>{my-fb-app-name}</string> 
<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>whatsapp</string> 
    <string>fbapi</string> 
    <string>fb-messenger-api</string> 
    <string>fbauth2</string> 
    <string>fbshareextension</string> 
</array> 

app id 및 {my-fb-app-name}에 앱 이름을 입력합니다.

또한이 :

  1. 내 번들 식별자 내가 페이스 북의 응용 프로그램 구성에 넣어 한 것과 동일한 문자열이 있음을 확인;

  2. 내가 페이스 북의 앱 구성에서 앱 도메인으로 보내는 링크의 도메인을 추가했습니다.

  3. 웹 사이트 플랫폼으로 보내는 링크의 도메인을 추가했습니다.

  4. 다음과 같은 코드를 통해, 페이스 북에서 하나를 내 응용 프로그램의 응용 프로그램 대리자를 통합 :
    public override bool FinishedLaunching(UIApplication app, NSDictionary options) 
    { 
        global::Xamarin.Forms.Forms.Init(); 
        LoadApplication(new App()); 
    
        Facebook.CoreKit.ApplicationDelegate.SharedInstance.FinishedLaunching(app, options); 
        return base.FinishedLaunching(app, options); 
    } 
    

어떤 도움

주시면 감사하겠습니다. 감사합니다.

답변

3

그래서 페이스 북은 실제로 내 URL을 차단하고있었습니다. 모든 것이 다른 URL과 잘 작동합니다.

MessageDialog API에 대한 심층적 인 실험을 통해 facebook이 HTTP 200 상태의 적절한 HTML 콘텐츠 결과를 제공하기 위해 URL이 공유 될 것으로 예상한다는 것을 발견했습니다. 내가 공유하고 있던 URL은 사실 302 상태를 돌려 주어 사용자를 오류 페이지로 리디렉션했습니다. 따라서 그 행동은 페이스 북별로 공유 할 수있는 콘텐츠로 받아 들여지지 않습니다.

다소 이런 유형의 동작을 의미합니다. 내가 속였던 것은 안드로이드 인 텐트 (Android Intent)를 통해 동일한 콘텐츠를 공유한다면 페이스 북이 괜찮다는 사실이었습니다.

어쨌든 이제 모든 것이 정상적으로 작동합니다.

같은 문제가있는 사용자에게 도움이 되었기를 바랍니다.

건배!

+0

그래서 iOS에서 URL (문자 메시지)없이 메시지를 보내는 방법은 – Rakii

+0

에 의해 안드로이드에서 가능합니다. @Rakii, Message Dialog API가 아닌 것 같습니다. 이 작업을 수행하려면 Send API를 사용해야합니다 (https://developers.facebook.com/docs/messenger-platform/send-api-reference#request;). –