質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

474閲覧

【UnityAsset】SocialWorkerのAndroidでのtwitter投稿の仕方が分かりません。

po_tato

総合スコア97

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/12/18 05:14

編集2017/12/18 06:44

以下のサイトを参考にTwitter投稿ボタンから
【UnityAsset】SocialWorker – Twitter、Facebook、Line、Instagram、メールへの個別連携
Twitterに画像付きで投稿機能を付けようとしていますができません。

iosの方は出来たのですが、
androidは説明通りにしても出来ませんでした。
もしかしたら私のやり方が間違っていたのかもしれません。

iosの方で成功したコードは以下です。
こちらはtweetボタンを押したら、スクショを撮影して、
textにテキスト、url、ハッシュタグを結合したもの、
imgPathにはスクショのファイルパスを指定しています。

//---------------------------------------------- // SocialWorker // © 2015 yedo-factory //---------------------------------------------- using UnityEngine; using UnityEngine.UI; using System.IO; using System.Collections; //SocialWorker使用 namespace SWorker { public class SWorkerScript : MonoBehaviour { void Start (){ } /// <summary> /// Twitter投稿 /// </summary> public void OnPostTwitter () { StartCoroutine (Share()); } private IEnumerator Share() { // 画面をキャプチャ ScreenCapture.CaptureScreenshot ("screenShot.png"); // キャプチャを保存するので1フレーム待つ yield return new WaitForEndOfFrame (); // シェアテキスト設定 var text = "テスト\nhttp://google.com/\n#aaaa "; //var url = "http://google.com/"; var imagePath = Application.persistentDataPath + "/screenShot.png"; SocialWorker.PostTwitter (text, imagePath); } } }

最後の行はサイトでは、

SocialWorker.PostTwitter(message, url, imagePath);

このようになっていましたが、何故かurlが表示されなかったので、
成功したソースのようになってしまいました。

どなたかAndroidの実装方法を知っている方おられませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

po_tato

2017/12/18 06:44

すみません。修正しました。
guest

回答1

0

Android 7.0以降では直接ファイルを取得することができなくなりました。
その影響かと思います。そのままのコードでAndroid6.0などで試してみてください。
問題なく動くと思います。

ちなみにこういうエラーが出ます。
同じエラーが出るかAndroid Device Monitorで確認してみてください。

log

110-06 15:00:16.061 E/Unity (20619): AndroidJavaException: android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/a/files/osumousan.png exposed beyond app through ClipData.Item.getUri() 210-06 15:00:16.061 E/Unity (20619): android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/a/files/osumousan.png exposed beyond app through ClipData.Item.getUri() 310-06 15:00:16.061 E/Unity (20619): at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958) 410-06 15:00:16.061 E/Unity (20619): at android.net.Uri.checkFileUriExposed(Uri.java:2348) 510-06 15:00:16.061 E/Unity (20619): at android.content.ClipData.prepareToLeaveProcess(ClipData.java:941) 610-06 15:00:16.061 E/Unity (20619): at android.content.Intent.prepareToLeaveProcess(Intent.java:9735) 710-06 15:00:16.061 E/Unity (20619): at android.content.Intent.prepareToLeaveProcess(Intent.java:9741) 810-06 15:00:16.061 E/Unity (20619): at android.content.Intent.prepareToLeaveProcess(Intent.java:9720) 910-06 15:00:16.061 E/Unity (20619): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1609) 1010-06 15:00:16.061 E/Unity (20619): at android.app.Activity.startActivityForResult(Activity.java:4472) 1110-06 15:00:16.061 E/Unity (20619): at android.app.Activity.startActivityForResult(Activity.java:4430) 1210-06 15:00:16.061 E/Unity (20619): at android.app.Activity.startActivity(Acti

###解決策
僕は、プラグインを購入しそれを使っています。
シェア機能以外も色々使えて安いのでおすすめです。

▼Cross Platform Native Plugins - Ultra Pack
https://assetstore.unity.com/packages/tools/integration/cross-platform-native-plugins-ultra-pack-31086

Twitterシェアのコードサンプルです。

C#

1 // Create share sheet 2 TwitterShareComposer _composer = new TwitterShareComposer(); 3 _composer.Text = m_shareMessage; 4 _composer.URL = m_shareURL; 5 6 // Show composer 7 NPBinding.Sharing.ShowView(_composer, FinishedSharing);

※ツイート完了のコールバックを受け取れますが、完了、キャンセル、エラーの判定ができません。それがちょっと残念な点です。それ以外は分かりやすくて使いやすいです。
API Documentation

※現在、一部のネイティブAPIの使用でクラッシュします。
もし、クラッシュする場合はTarget API LevelをAutomaticからAndroid 7.1にしてください。
それで解決するはずです。

イメージ説明

投稿2017/12/18 06:07

IShix

総合スコア1724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

po_tato

2017/12/18 06:47

40.00$は私には少し高めですね。汗 できれば無料でどうにかして実装したい派でして。。 ですが、とても有益な情報をありがとうございます! どうしても実装できなかったら参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問