【Swift 開発】iOSアプリからfacebookでsnsシェアする方法
アプリを開発の際にline,twitter,facebookでsnsシェア機能を導入する機会があったので、そのときの工程をまとめました。
- 1 facebook for developersで開発者登録
- 2 facebook for developersで投稿機能を使いたいアプリを登録
- 3 FacebookSDKでCocoaPodsでライブラリを導入
- 4 info.plistでライブラリの設定をする
- 5 投稿の内容を設定
facebook for developersで開発者登録
https://developers.facebook.com
上記のサイトでユーザー登録します。
facebook for developersで投稿機能を使いたいアプリを登録
https://developers.facebook.com
またも上記のサイトです。
「マイアプリ」>「新しいアプリを追加する」から投稿機能を導入したいアプリを登録します。
ここで登録したapp idとアプリ名をinfo.plistの設定のときに使います。
FacebookSDKでCocoaPodsでライブラリを導入
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
上記をPodfileに追加します。
$ pod install
追加したライブラリをインストールします。
info.plistでライブラリの設定をする
<key>FacebookAppID</key>
<string>{your-app-id}</string>
<key>FacebookDisplayName</key>
<string>{your-app-name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>fb{your-app-id}</string>
</array>
</dict>
</array>
これをinfo.plistに追加します。
投稿の内容を設定
import FBSDKCoreKit
import FBSDKShareKit
import FacebookShare
classの外でライブラリをimportします。
func fbShare() {
let content = ShareLinkContent()
content.contentURL = NSURL(string:url) as! URL
content.hashtag = Hashtag(text)
let dialog = ShareDialog()
dialog.shareContent = content
dialog.mode = ShareDialog.Mode.native
dialog.show()
}
シェアの種類は何種類かありますが、今回はシェアダイアログを使います。
まとめ
このような流れに沿えば、簡単に導入できたのではないでしょうか。
詳しいことは公式ドキュメントに載っていますので、気になればそちらも参考にしてください。
Warning: include(/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html): failed to open stream: No such file or directory in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24
Warning: include(): Failed opening '/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html' for inclusion (include_path='.:/usr/share/pear7:/usr/share/php') in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24