はぁ~~~、VB.NETだけでも何か方法があるんでしょうけど、、、、
つい、bit.lyでV4のPHPサンプルを見つけたので、
「VB.NETで作っているアプリ上に細長いサイズ(返って来る短縮URLの1行だけ見えればいいので)WebBrowserコントロールを使って、そこに別サーバーにあるPHPに長いURLを投げて短縮URLを表示する」
ということにしました。
PHP:ファイルの名前はgetbitly.php としてみました。これはWebサーバーに置きます。
<?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コントールとボタン・テキストボックスを配置して、
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ですね。
コメント