はぁ~~~、VB.NETだけでも何か方法があるんでしょうけど、、、、
つい、bit.lyでV4のPHPサンプルを見つけたので、
「VB.NETで作っているアプリ上に細長いサイズ(返って来る短縮URLの1行だけ見えればいいので)WebBrowserコントロールを使って、そこに別サーバーにあるPHPに長いURLを投げて短縮URLを表示する」
ということにしました。
PHP:ファイルの名前はgetbitly.php としてみました。これはWebサーバーに置きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php $long_url = $_GET["long_url"]; $apiv4 = 'https://api-ssl.bitly.com/v4/bitlinks'; $genericAccessToken = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'; $data = array( 'long_url' => $long_url ); $payload = json_encode($data); $header = array( 'Authorization: Bearer ' . $genericAccessToken, 'Content-Type: application/json', 'Content-Length: ' . strlen($payload) ); $ch = curl_init($apiv4); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); $resultToJson = json_decode($result); if (isset($resultToJson->link)) { echo $resultToJson->link; } else { echo 'Not found'; } ?> |
VB.NET(VisualStudio2017)・デスクトップアプリ側では、WebBrowserコントールとボタン・テキストボックスを配置して、
1 2 3 4 5 6 7 8 9 10 |
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click Me.WebBrowser1.Visible = True Dim LongURL As String = HttpUtility.UrlEncode(Me.Txtbox1.Text.ToString) Dim request = String.Format("https://xxxxxxxx/getbitly.php?long_url={0}", LongURL) WebBrowser1.Url = New Uri(request) End Sub |
※TxtBox1には長ーいURL(??が一杯ついたパラメータ付)のサイトURLをコピーして、ボタンをクリックすると、アプリ内に短縮URLが表示されるという仕組み。最初にわからんかったのは、HttpUtility.UrlEncodeですね。
コメント