0

反応アプリケーションとネイティブ Android アプリの Web バージョンでこれを行っているため、セットアップとすべてが正常に機能しています。react-native-fbsdk を使用して、react-native でアクションの共有を実装しようとしています。react-native-fbsdk コードに最も近いように見えるので、Android コードに従っています。

ShareApi.share などを使用する必要がありますか?

ShareApi.share で使用する ShareOpenGraphContent のインスタンスを作成しようとしましたが、コンストラクターがありません。

彼らがより完全なドキュメントを提供してくれることを願っています:s

私の同僚が Android の ShareApi に使用したコードに基づいて、react-native-fbsdk にはアクションの共有に関連するいくつかのものが欠けているようです。

ShareOpenGraphContentは react-native-fbsdk から直接エクスポートされないため、この

import { ShareOpenGraphContent } from 'react-native-fbsdk';

実際には機能しません。アクションを共有するには、react-native-fbsdk で ShareApi を使用する方法が必要です...何かが足りないだけです。

誰か助けてください...お願いします。

ありがとう!!

4

1 に答える 1

0

私はそれを考え出した!contentType、action、および previewPropertyName の 3 つの必須プロパティを持つ ShareOpenGraphContent オブジェクトのインスタンスを手動で作成する必要がありました。現在、react-native-fbsdk には、このオブジェクト タイプのコンストラクターがありません。

ShareApi.canShare は必須ではありませんが、共有を試みる前に正しいアクセス許可があることを確認します。これにより、トークンの有効期限が切れた場合、またはユーザーがまだ必要なアクセス許可に同意していない場合に、試行する前にユーザーをログインさせることができます。

const ogAction = new ShareOpenGraphAction('<your_facebook_namespace>' + ':' + '<your_facebook_action>');
ogAction.putString('song', 'https://<url_to_your_song_app_etc>');
ogAction.putString('place', '<fbPlacePageID>'');
ogAction.putNumber('fb:explicitly_shared', 1); // Normally this is a boolean, but putNumber with a value of 1 works

// Manually create an instance of ShareOpenGraphContent (no constructor in the API)
const ogContent = {
  contentType: 'open-graph',
  action: ogAction,
  previewPropertyName: 'song',
};

ShareApi.canShare(ogContent).then((canShare) => {
  if (canShare)
    return ShareApi.share(ogContent, '/me');
}).then(
  function(result) {
    // Shared successfully
  },
  function(error) {
    // Failed to share
  }
);
于 2016-11-28T18:50:27.907 に答える