2013年5月27日月曜日

自作Twitterクライアント作成の記録(1)

なぜか今ツイッターのクライアント作りにはまってます。
が、やっぱりうまく動かないんですよね、というのもC#と「Twitterizer」というライブラリを使ってOAuth認証とツイートをすることには成功したんですよ、ただしどうやってもTLが取得できないという事態に。
調べてみると、TwitterizerがAPI1.1に対応してないとのこと(無理やり使うことはできるらしい)
で、ほかにC#で使えるいいライブラりはないものかと探してみると、「LinqToTwitter」なるものを発見したんですよ。
そしてついさっきまでプログラミングしてたわけなんですけど・・・・詰まった、しかもわかったら簡単なことで。
どこで詰まったかというと、フォーム間での値受け渡しなんですよ。
というわけで、またこれで詰まらないためにもここに少し書き留めておこうかと思います。



開発に使ったソフトも書いとこ
Microsoft Visual C# 2010 Express使用

※コメント等は自分の解釈で書いてたりするのでわかりにくかったりするかもです、もし間違ってたりしたらコメントしてくれるとうれしいです。
また、いらなくねこれっていうのも教えてくれるとありがたいです。

Form1(メインフォーム)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LinqToTwitter;
using System.Diagnostics;
using System.Configuration;
namespace じみったー //ここが日本語なのは許して
{
public partial class Form1 : Form
{
private string pincode = "";
public string accsesToken;
public string accessSecre;
public string consumerKey = "ここは見せられないよ!";
public string consumerSecret = "ここは見せられないよ!";

public Form1()
{
InitializeComponent(); //これがないとボタン等が表示されないらしい
}

//Pin_Formから値を受け取るプロパティ
public string Pinform
{
set
{
pincode = value; //受け取った値をpincodeへ代入
textBox2.Text = pincode; //値をtextBoxに表示
}
get
{
return pincode; //pincodeの値をPin_Formへ返す
}
}

//認証が押された
private void PinToolStripMenuItem_Click(object sender, EventArgs e)
{
if (accsesToken == null) //アクセストークンが指定されてるか
{
PIN_Form PinForm = new PIN_Form(this); //Foem1が参照できるように引数はthis
PinForm.TopMost = this.TopMost; //Form1のTopMostの状態を代入
PinForm.ShowDialog(); //PinFormを表示
}
else
{
MessageBox.Show("すでに認証されてます。", "認証", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
Pin_Form(PINコードを入力しメインフォームに返させる予定)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace じみったー //ここが日本語なの(ry
{
public partial class PIN_Form : Form
{

public Form1 formMain; //Form1へアクセスできるように
public PIN_Form(Form1 f)
{
formMain = f;//Form1への参照を保存
InitializeComponent();
}

//OKボタンがおされた
private void Ok_Button_Click(object sender, EventArgs e)
{
formMain.Pinform = Pin_TextBox.Text; //Form1のPinformプロパティへ値を代入
}
}
}
実行するとこんな感じ。




テキスト内に1234と入力。






Form1のテキストボックス(灰色のでかいやつ)に1234と表示される。

ちなみに小さい方は将来ツイートを書き込めるようにする予定。






最後に・・・キャプチャー雑ですまん。

追記:コードを見やすくしてみる。

0 件のコメント:

コメントを投稿