2016-10-18 9 views
4

私は、MessageDialog APIを介してFacebookのメッセンジャーにリンク+コンテンツを送るルーチンを実装しました。私はメッセージのダイアログにリンクコンテンツを表示させることができましたが、送信ボタンは無効になっています。私はこれが何よりも構成上の問題だと思う。Facebook iOSメッセージダイアログ送信ボタンが無効

xamarinのネイティブiosで最新のxamarin facebook sdk(v 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のFacebookの設定部である:

{MY-FB-APP-ID}は私のFacebookに置き換えた
<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. は私のバンドル識別子は、私がFacebookアプリの設定に入れているものとまったく同じ文字列であることを確認。

  2. 私はFacebookのアプリの設定でアプリドメインとして送信しているリンクのドメインを追加しました。

  3. 私はウェブサイトプラットフォームとして送信しているリンクのドメインを追加しました。

  4. は、次のコードを経て、Facebookのからの1で私のアプリのアプリデリゲートを統合:

    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

したがって、Facebookは実際には自分のURLをブロックしていました。 すべては他のURLとうまく動作します。

MessageDialog APIを使って深く実験した結果、HTTP 200ステータスの適切なHTMLコンテンツの結果を返すために、FacebookがURLを共有することを期待していることがわかりました。私が共有していたURLは、実際に302状態を戻して、ユーザーをエラーページにリダイレクトしていました。したがって、その行動はFacebookの共有コンテンツとして受け入れられません。

ちょっとこのタイプの動作を意味します。 Androidのインテントで同じコンテンツを共有すると、Facebookに問題はないということが私を騙してくれました。

とにかく、すべてうまくいきました。

これは、同じ問題を抱えている人に役立ちます。

乾杯!

+0

iOSでURLなしのメッセージ(テキストメッセージ)を送信する方法はありますか? – Rakii

+0

@Rakii、Message Dialog APIでは恐れることはありません。これを行うにはSend APIを使用する必要があります(https://developers.facebook.com/docs/messenger-platform/send-api-reference#request;) –

関連する問題