[英]Twitter Share Button for non English
嘿伙計們,首先我要感謝你們所有人閱讀我的問題和你們的時間。 我有一個“推特分享”按鈕,
這是html代碼:
<a id="TwitterShare" target="_blank" runat="server" rel="nofollow" class="twitter"><i class="fa fa-twitter " aria-hidden="true">غرد</i></a>
這是背后的代碼:
string RequestTwitter = "https://twitter.com/intent/tweet?text=";
string WebsiteURl = "https://www.MyWebsite.com/";
string Localurl = "Post/" + Postid + "/" + PostName;
string FullMineURL= WebsiteURl+Server.UrlEncode(Localurl);
string TwitterFinal = RequestTwitter + FullMineURL;
TwitterShare.Attributes.Add("href", TwitterFinal);
代碼工作並獲取 url,但是當我分享鏈接時,twitter 沒有讀取完整鏈接,這是因為它以這種方式看到的鏈接
اكل-الجوز-وعلاقته-وفوائده-للقلب-والامعاءhttps://Mywebsite.com/Post/3163/
我試圖調試代碼,但我發現代碼是正確的
我跑你的代碼,它工作得很好,我不認為它有問題,你的代碼(也報告了這方面的一個類似的問題的問題
您可以使用URL Shortner來縮短url並在您的推文句柄中使用它,我嘗試並能夠分享推文
您可以登錄這里,並產生GenericAccessToken 這里
用您可以生成的GenericAccessToken替換_bitlyToken
用法
確保您的頁面被標記為Async 。 <%@ Page Async="true" %>
protected void Page_Load(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(CurrentPost);
}
async Task CurrentPost()
{
...
var shortenURL = await p.ShortenAsync(FullMineURL);
string TwitterFinal = RequestTwitter + shortenURL;
TwitterShare.Attributes.Add("href", TwitterFinal);
...
}
輔助方法
public async Task<string> ShortenAsync(string longUrl)
{
//with thanks to @devfunkd - see https://stackoverflow.com/questions/31487902/nuget-package-for-bitly-to-shorten-the-links
var url = string.Format("https://api-ssl.bitly.com/v3/shorten?access_token={0}&longUrl={1}",
_bitlyToken, HttpUtility.UrlEncode(longUrl));
var request = (HttpWebRequest)WebRequest.Create(url);
try
{
var response = await request.GetResponseAsync();
using (var responseStream = response.GetResponseStream())
{
var reader = new StreamReader(responseStream, Encoding.UTF8);
var jsonResponse = JObject.Parse(await reader.ReadToEndAsync());
var statusCode = jsonResponse["status_code"].Value<int>();
if (statusCode == (int)HttpStatusCode.OK)
return jsonResponse["data"]["url"].Value<string>();
//else some sort of problem
Console.WriteLine("Bitly request returned error code {0}, status text '{1}' on longUrl = {2}",
statusCode, jsonResponse["status_txt"].Value<string>(), longUrl);
//What to do if it goes wrong? I return the original long url
return longUrl;
}
}
catch (WebException ex)
{
var errorResponse = ex.Response;
using (var responseStream = errorResponse.GetResponseStream())
{
var reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
var errorText = reader.ReadToEnd();
// log errorText
Console.WriteLine("Bitly access threw an exception {0} on url {1}. Content = {2}", ex.Message, url, errorText);
}
//What to do if it goes wrong? I return the original long url
return longUrl;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.