none
VB.NETで写真付きのツイートをする方法がわかりません。 RRS feed

  • 質問

  •  Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
            Dim tokens As CoreTweet.Tokens = CoreTweet.Tokens.Create(
                                                " ", " ",
                                                " ", " ")
            tokens.Statuses.Update(textbox1.Text)
        End Sub

    上のプログラムでVB.NETでTwitterAppsとCoreTweetを使って文字のみをツイートをすることはできましたが、写真付きのツイートをする方法がわかりません。

    https://github.com/CoreTweet/CoreTweet/wiki/%E7%94%BB%E5%83%8F%E3%82%84%E5%8B%95%E7%94%BB%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%A6%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

    一応上のURLのサイトでC#を用いた写真付きのツイートをする方法は書いてありましたが、どうしてもVB.NETの言語に翻訳することができません。VB初心者ですので、どなたか教えてくださいませんでしょうか。

    2018年8月9日 12:34

回答

  • 以下に解説します。
    また、【動作確認していない】ですので、自己責任でお願いいたします。

    Imports CoreTweet
    
    Module Module1
    
        Sub Main()
    
            Dim t = Tokens.Create("", "", "", "")
    
            ' Update メソッドにマウスオーバーすれば、オーバーロードの引数を見ることができます
            ' 引数がたくさんある版で実行
            t.Statuses.Update("初めてのツイート!")
    
    
            ' tokens.Statuses.Update(status: "初めてのツイート!");
            ' こちらも、引数がたくさんある版で実行。ただし、
            ' 名前による引数渡し
            ' https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/procedures/passing-arguments-by-position-and-by-name
            t.Statuses.Update(status:="初めてのツイート!")
    
    
            ' tokens.Statuses.Update(status => "初めてのツイート!");
            ' 式ツリー(ラムダ式)版
            t.Statuses.Update(Function(status) "初めてのツイート!")
            't.Statuses.Update(SetTweetInfo("初めてのツイート!"))
    
        End Sub
    
        ' Function(status) "初めてのツイート!"
        ' がラムダ式(名前が無いメソッド)。以下のイメージ。引数の型(String)は推論により省略可能。
        Function SetTweetInfo(status As String) As String
            Return "初めてのツイート!"
        End Function
    
    End Module
    

    で、画像付きツイートするためには、以下かなと思います。(間違ってたらごめんなさい)

    Imports System.IO
    Imports CoreTweet
    
    Module Module1
    
        Sub Main()
    
            Dim t As Tokens = Tokens.Create("", "", "", "")
    
            ' 画像付きのツイートを送信する
            ' https://github.com/CoreTweet/CoreTweet/wiki/REST-API-%E3%82%92%E4%BD%BF%E3%81%86
            ' → 楽だけど、非推奨メソッドになったっぽい
            't.Statuses.UpdateWithMedia(Function(status) "", Function(media) New FileInfo(""))
    
            ' → 現在は以下のやり方かな?
            ' 画像をアップロードしてツイートする
            ' https://github.com/CoreTweet/CoreTweet/wiki/%E7%94%BB%E5%83%8F%E3%82%84%E5%8B%95%E7%94%BB%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%A6%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
            Dim m As MediaUploadResult = t.Media.Upload(New FileInfo("C:\aaa.png"))
            Dim s As Status = t.Statuses.Update(status:="初めてのツイート!", media_ids:=New Long() {m.MediaId})
    
        End Sub
    
    End Module
    

    • 回答としてマーク vpbei 2018年8月9日 17:45
    2018年8月9日 15:16

すべての返信

  • 以下に解説します。
    また、【動作確認していない】ですので、自己責任でお願いいたします。

    Imports CoreTweet
    
    Module Module1
    
        Sub Main()
    
            Dim t = Tokens.Create("", "", "", "")
    
            ' Update メソッドにマウスオーバーすれば、オーバーロードの引数を見ることができます
            ' 引数がたくさんある版で実行
            t.Statuses.Update("初めてのツイート!")
    
    
            ' tokens.Statuses.Update(status: "初めてのツイート!");
            ' こちらも、引数がたくさんある版で実行。ただし、
            ' 名前による引数渡し
            ' https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/procedures/passing-arguments-by-position-and-by-name
            t.Statuses.Update(status:="初めてのツイート!")
    
    
            ' tokens.Statuses.Update(status => "初めてのツイート!");
            ' 式ツリー(ラムダ式)版
            t.Statuses.Update(Function(status) "初めてのツイート!")
            't.Statuses.Update(SetTweetInfo("初めてのツイート!"))
    
        End Sub
    
        ' Function(status) "初めてのツイート!"
        ' がラムダ式(名前が無いメソッド)。以下のイメージ。引数の型(String)は推論により省略可能。
        Function SetTweetInfo(status As String) As String
            Return "初めてのツイート!"
        End Function
    
    End Module
    

    で、画像付きツイートするためには、以下かなと思います。(間違ってたらごめんなさい)

    Imports System.IO
    Imports CoreTweet
    
    Module Module1
    
        Sub Main()
    
            Dim t As Tokens = Tokens.Create("", "", "", "")
    
            ' 画像付きのツイートを送信する
            ' https://github.com/CoreTweet/CoreTweet/wiki/REST-API-%E3%82%92%E4%BD%BF%E3%81%86
            ' → 楽だけど、非推奨メソッドになったっぽい
            't.Statuses.UpdateWithMedia(Function(status) "", Function(media) New FileInfo(""))
    
            ' → 現在は以下のやり方かな?
            ' 画像をアップロードしてツイートする
            ' https://github.com/CoreTweet/CoreTweet/wiki/%E7%94%BB%E5%83%8F%E3%82%84%E5%8B%95%E7%94%BB%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%A6%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
            Dim m As MediaUploadResult = t.Media.Upload(New FileInfo("C:\aaa.png"))
            Dim s As Status = t.Statuses.Update(status:="初めてのツイート!", media_ids:=New Long() {m.MediaId})
    
        End Sub
    
    End Module
    

    • 回答としてマーク vpbei 2018年8月9日 17:45
    2018年8月9日 15:16
  • 無事に動作してくれました!本当にありがとうございます!
    2018年8月9日 17:44