如何使用 react-native-fbsdk 共享操作?
How do I share an action using react-native-fbsdk?
我们在我们的反应应用程序和我们的本地 Android 应用程序的网络版本中执行此操作,因此我们的设置和一切工作正常。我正在尝试使用 react-native-fbsdk 在 react-native 中实现共享操作。我正在关注 Android 代码,因为它看起来最接近 react-native-fbsdk 代码。
我应该使用 ShareApi.share 还是其他东西?
我尝试创建一个 ShareOpenGraphContent 实例以与 ShareApi.share 一起使用,但没有构造函数。
我希望他们能提供更详尽的文档:s
根据我同事在 Android 上用于 ShareApi 的代码,似乎 react-native-fbsdk 缺少一些与共享操作相关的内容。
ShareOpenGraphContent 不是直接从 react-native-fbsdk 导出的,所以这个
import { ShareOpenGraphContent } from 'react-native-fbsdk';
实际上是行不通的。必须有一些方法可以在 react-native-fbsdk 中使用 ShareApi 来共享一个动作......我只是错过了一些东西。
有人帮忙...拜托。
谢谢!!
我想通了!我不得不手动创建一个 ShareOpenGraphContent 对象的实例,它具有 3 个强制属性:contentType、action 和 previewPropertyName。 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
}
);
我们在我们的反应应用程序和我们的本地 Android 应用程序的网络版本中执行此操作,因此我们的设置和一切工作正常。我正在尝试使用 react-native-fbsdk 在 react-native 中实现共享操作。我正在关注 Android 代码,因为它看起来最接近 react-native-fbsdk 代码。
我应该使用 ShareApi.share 还是其他东西?
我尝试创建一个 ShareOpenGraphContent 实例以与 ShareApi.share 一起使用,但没有构造函数。
我希望他们能提供更详尽的文档:s
根据我同事在 Android 上用于 ShareApi 的代码,似乎 react-native-fbsdk 缺少一些与共享操作相关的内容。
ShareOpenGraphContent 不是直接从 react-native-fbsdk 导出的,所以这个
import { ShareOpenGraphContent } from 'react-native-fbsdk';
实际上是行不通的。必须有一些方法可以在 react-native-fbsdk 中使用 ShareApi 来共享一个动作......我只是错过了一些东西。
有人帮忙...拜托。
谢谢!!
我想通了!我不得不手动创建一个 ShareOpenGraphContent 对象的实例,它具有 3 个强制属性:contentType、action 和 previewPropertyName。 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
}
);