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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Unity

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

423閲覧

Unityのコンソール画面にTwitterのホームタイムラインを表示したい

tensaikumabouzu

総合スコア45

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Unity

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/10/27 16:28

unity5.5を使用しています。下記のプログラムはユーザーのホームタイムラインを表示するプログラムとして製作したもので
http://pepoipod.hatenablog.jp/entry/attack-sns-api-in-unity
このサイトのユーザーのタイムラインをコンソールに表示するプログラムをもとに作成しました。
ユーザータイムラインは取得できたのですが、ホームタイムラインは全く取得できずに困っています。
”since id”で最新のホームタイムラインを取得して過去20件のツイート情報をコンソールに表示するプログラムだと認識しているのですが、この考え方が間違っているのでしょうか?また、プログラムとしての欠陥があるようなのですがどこを直せばよいのでしょうか?よろしくお願いします。

C#

1public class AccessTokenResponse 2 { 3 public string Token { get; set; } 4 public string TokenSecret { get; set; } 5 public string UserId { get; set; } 6 public string ScreenName { get; set; } 7 } 8public delegate void GetHomeTimelineCallback(bool success, string response); 9 10 public static IEnumerator GetAccessToken(string consumerKey, string consumerSecret, string requestToken, string pin, AccessTokenCallback callback) 11 { 12 WWW web = WWWAccessToken(consumerKey, consumerSecret, requestToken, pin); 13 14 yield return web; 15 16 if (!string.IsNullOrEmpty(web.error)) 17 { 18 Debug.Log(string.Format("GetAccessToken - failed. error : {0}", web.error)); 19 callback(false, null); 20 } 21 else 22 { 23 AccessTokenResponse response = new AccessTokenResponse 24 { 25 Token = Regex.Match(web.text, @"oauth_token=([^&]+)").Groups[1].Value, 26 TokenSecret = Regex.Match(web.text, @"oauth_token_secret=([^&]+)").Groups[1].Value, 27 UserId = Regex.Match(web.text, @"user_id=([^&]+)").Groups[1].Value, 28 ScreenName = Regex.Match(web.text, @"screen_name=([^&]+)").Groups[1].Value 29 }; 30 31 if (!string.IsNullOrEmpty(response.Token) && 32 !string.IsNullOrEmpty(response.TokenSecret) && 33 !string.IsNullOrEmpty(response.UserId) && 34 !string.IsNullOrEmpty(response.ScreenName) 35 ) 36 { 37 callback(true, response); 38 } 39 else 40 { 41 Debug.Log(string.Format("GetAccessToken - failed. response : {0}", web.text)); 42 callback(false, null); 43 } 44 } 45 } 46 47 48//自分のホームタイムラインの取得 49 private const string GetHomeTimelineURL = "https://api.twitter.com/1.1/statuses/home_timeline.json"; 50 public static IEnumerator GetHomeTimeline(string user_id, string consumerKey, string consumerSecret, AccessTokenResponse response, GetHomeTimelineCallback callback) 51 { 52 byte[] dummmy = null; 53 string url = GetHomeTimelineURL; 54 55 Dictionary<string, string> parameters = new Dictionary<string, string>(); 56 parameters.Add("since_id", 1234.ToString()); 57 parameters.Add("count", 20.ToString()); 58 parameters.Add("exclude_replies", "false"); 59 60 url = BuildURL (url, parameters); 61 62 Dictionary<string, string> headers2 = new Dictionary<string, string>(); 63 headers2["Authorization"] = GetHeaderWithAccessToken("GET", url, consumerKey, consumerSecret, response, parameters); 64 65 WWW web = new WWW(url, dummmy, headers2); 66 yield return web; 67 68 if (!string.IsNullOrEmpty(web.error)) 69 { 70 Debug.Log(string.Format("GetHomeTimeline - failed. {0}\n{1}", web.error, web.text)); 71 callback(false, web.error); 72 } 73 else 74 { 75 string error = Regex.Match(web.text, @"<error>([^&]+)</error>").Groups[1].Value; 76 77 if (!string.IsNullOrEmpty(error)) 78 { 79 Debug.Log(string.Format("GetHomeTimeline - failed. {0}", error)); 80 callback(false, web.error); 81 } 82 else 83 { 84 callback(true, web.text); 85 } 86 } 87 } 88 89//ユーザのホームタイムライン表示するボタン 90 public void onClickHomeTimeLineDisplayButton(){ 91 StartCoroutine (Twitter.API.GetHomeTimeline (m_AccessTokenResponse.UserId, CONSUMER_KEY, CONSUMER_SECRET, m_AccessTokenResponse, 92 new Twitter.GetHomeTimelineCallback (this.OnGetHomeTimeline))); 93 } 94 95void OnGetHomeTimeline(bool success, string response) { 96 print ("GetHomeTimeline- " + (success ? "succedded." : "failed.")); 97 if (success) { 98 var json = JSON.Parse (response); 99 print (json); 100 } 101 }

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問