2016-05-05 2 views
4

J'essaie de partager une image avec Facebook dans React Native via le paquetage react-native-fbsdk.Partager une image avec react-native-fbsdk?

J'ai ce qui suit, copié presque complètement de la docs, mais je n'arrive pas à comprendre comment formater le imageUrl, je continue d'obtenir des erreurs en disant le SharingContent is invalid.

Qu'est-ce que je fais mal ici?

const sharePhotoContent = { 
    contentType: 'photo', 
    photos: [ 
    { 
     imageUrl: "./local/image/path.png", 
     userGenerated: false, 
     caption: "Hello World" 
    } 
    ] 
}; 

ShareDialog.canShow(sharePhotoContent).then(
    function(canShow) { 
    if (canShow) { 
     return ShareDialog.show(sharePhotoContent); 
    } 
    } 
).then(
    function(result) { 
    if (result.isCancelled) { 
     AlertIOS.alert('Share cancelled'); 
    } else { 
     AlertIOS.alert('Share success with postId: ' + result.postId); 
    } 
    }, 
    function(error) { 
    AlertIOS.alert('Share fail with error: ' + error); 
    } 
); 
+0

Je sais que ça fait un certain temps, mais je me demande si vous avez déjà trouvé une façon de le faire (construire une URL pour un .png dans votre projet et de le partager avec natif réagir-fbsdk, qui est)? Merci – kwishnu

+0

Non, je n'ai jamais compris. – nicholas

+0

Pour revenir à moi, oui, vous pourriez penser que Facebook rendrait cela plus transparent puisque RN est leur bébé. Oh bien – kwishnu

Répondre

1

Vous pouvez utiliser la réaction-image natif sélecteur https://github.com/marcshilling/react-native-image-picker pour obtenir le uri de l'image et de l'utiliser à créer un SharePhotoContent.

Notez également que vous devez installer l'application facebook pour partager une image.

+0

pourquoi le bouton de connexion de facebook n'est pas cliqué dans mon fbsdk? –

+0

@SusylGhimire Allons-nous ouvrir une nouvelle question de stackoverflow pour cela? – dzhuowen

+0

oui pourquoi pas. :) –

0
This is working fine for me 

    shareLinkWithShareDialog() { 

let shareLinkContent = { 

contentType: 'link', 

contentUrl: 'https://www.facebook.com/images/fb_icon_325x325.png', 

contentDescription: 'Facebook sharing is easy!' 
     } 

ShareDialog.canShow(shareLinkContent).then((canShow) => { 

if (canShow) return ShareDialog.show(shareLinkContent); 

} 

).then((result) => { 

if (result.isCancelled) { 

    alert('Share cancelled'); 

} else { 

    alert('Share success with postId: ' + result.postId); 

    } 

    }, 

    function(error) { 

    alert('Share fail with error: ' + error); 
     } 
    ); 
    }