私は人々がウェブページから特定の個人にツイートできるようにするインターフェースを作成しました。そのために、私はTwitterのWebインテントを利用しています。最初、ページには、ユーザーが[返信]ボタンをクリックしたときにテキストパラメーターとして渡されたプレースホルダーツイートを含むテキストエリアがありましたが、スコープが変更され、ユーザーがテキストエリアにテキストを入力できるようになりました。ユーザーのテストでは、ページのコンテンツを編集できなかった場合、ユーザーがツイートする可能性が低いことがわかったため、ボタンをクリックして、更新されたツイートを含むTwitterポップアップを確認してください。
問題は、このコードはTwitterインテントリンクを更新しますが、Twitterインテントリンクの一部の機能が壊れているように見えることです。最も注目すべきは、リンクが通常のように小さなポップアップで開かないことです。代わりに、現在のページが置き換えられます。また、「in_reply_to」機能は断続的です。返信するツイートを含める必要がある特定のリンクはそうではありませんが、他のリンクはそうします。
誰かがこのようなことをしようとしましたか?もしそうなら、何かアドバイスはありますか?私はこの時点で途方に暮れています。
HTML(Djangoを使用しているため、テンプレートロジック):
<div class="response">
{%if quote.tweet_id%}
<textarea id="twitter_response_text" class="has_tweet_id" maxlength="140">{{quote.twitter_handle}} {{quote.twitter_text_default}}</textarea>
<label for="twitter_response_text"><span></span></label>
<a class="hasReply" data-tweet-id="{{quote.tweet_id}}" href="https://twitter.com/intent/tweet?in_reply_to="><button value="respond" data-quote-id="{{quote.id}}"/><img src="{{STATIC_URL}}img/reply_arrow.png"> Reply</button></a>
{%else%}
<textarea id="twitter_response_text" maxlength="140">{{quote.twitter_text_default}}</textarea>
<label for="twitter_response_text"><span></span></label>
<a href="https://twitter.com/intent/tweet?text="><button value="reply" data-quote-id="{{quote.id}}" /><img src="{{STATIC_URL}}img/reply_arrow.png"> Reply</button></a>
{%endif%}
</div>
Javascript:
$(".response a, .twitteraction a").on("click", function() {
//get text from the textarea of the current slide
var textarea = $(this).parents(".slide").find("#twitter_response_text")
if (textarea.val() !== "") {
text = textarea.val();
} else {
text = textarea.text();
}
//maybe we need the handle?
// var handle = $(this).parents(".slide").find("#twitterhandle").text();
//get the link
var link = $(this).attr("href");
//check to see if it needs reply link or regular
if ($(this).hasClass("hasReply")) {
//get the tweet id, stored as data attribute in the anchor
var tweetId = $(this).data("tweet-id");
//construct the query with a twitter id but no handle
var query = encodeURIComponent(tweetId) + "&text=" + encodeURIComponent(text) + "&related=ForecastFacts&original_referer=http://climatecliff.org/";
//add link to anchor
$(this).attr("href", (link + query));
} else {
//construct the query with text and related
var query = encodeURIComponent(text) + "&related=ForecastFacts&original_referer=http://climatecliff.org/";
//add query to anchor
$(this).attr("href", (link + query));
}
});