2012-02-03 21 views
29

Tôi đang viết một trang web có nút tweet tùy chỉnh sử dụng chức năng www.twitter.com/share, tuy nhiên vấn đề tôi đang gặp là bao gồm các ký tự băm '#' trong văn bản tweet.Bạn bao gồm thẻ bắt đầu bằng # trong văn bản liên kết chia sẻ Twitter như thế nào?

Ví dụ:

http://www.twitter.com/share?url=www.example.com&text=I+am+eating+#branstonpickel+right+now
Văn bản tweet đi ra là 'Tôi ăn' và bỏ qua các hash và tất cả mọi thứ sau.

Tôi đã xem nhanh trên diễn đàn Twitter và tìm hiểu ký tự băm '#' không thể là một phần của url chia sẻ.
On https://dev.twitter.com/discussions/512#comment-877 người ta nói rằng:

Hashes là ký tự đặc biệt trong URL (họ xác định các mảnh tài liệu) để họ, và bất cứ điều gì sau đây, không được gửi máy chủ.

bạn cần phải URLEncode nó, vì vậy sử dụng% 23

Khi tôi cố gắng điểm thứ 2 liên kết thử nghiệm của tôi:

www.twitter.com /share?url=www.example.com & văn bản = I + am + ăn +% 23branstonpickel + ngay + bây giờ
Các văn bản tweet cam e out là 'Tôi đang ăn% 23branstonpickel ngay bây giờ' theo nghĩa đen bao gồm% 23 thay vì chuyển đổi thành băm.

Xin lỗi vì câu hỏi khó hiểu, nhưng có ai biết tôi đang làm gì sai không?
Bất kỳ thông tin phản hồi sẽ được đánh giá rất nhiều :)

Trả lời

64

Dường như đây là thiết lập cơ bản:

https://twitter.com/intent/tweet? 
url=<url to tweet> 
text=<text to tweet> 
hashtags=<comma separated list of hashtags, with no # on them> 

này sẽ được xây dựng trước một tweet của: <text> <url> <hashtags>

Ví dụ trên sẽ là: https://twitter.com/intent/tweet?url=http://www.example.com&text=I+am+eating+branston+pickel+right+now&hashtags=bransonpickel,pickles

Đã từng có lỗi với tham số hashtags ... nó chỉ hiển thị thẻ bắt đầu bằng # n-1 đầu tiên. Hiện tại điều này đã được sửa.

+3

Xuất hiện lỗi "n-1" đã được sửa vào lúc này – MJB

+0

Cảm ơn câu trả lời của bạn. Nó rất hữu ích cho tôi :) –

+0

Điều này không còn hoạt động. – RolandiXor

3

Tôi có thể sai, nhưng tôi nghĩ rằng hashtag có được thông qua như là một biến riêng biệt mà sẽ xuất hiện vào cuối tức là tweet của bạn:

http://www.twitter.com/share?url=www.example.com&text=I+am+eating+branston+pickel+right+now&hashtag=bransonpickel

sẽ dẫn đến "Tôi đang ăn branston pickel ngay bây giờ #branstonpickle"

Trên một lưu ý riêng, tôi nghĩ rằng dưa chua nên được dưa!

Cheers

Toby

+0

Điều này không hoạt động –

+1

Đã làm 11 tháng trước! Ý định api giờ đây đã được chính thức hóa thêm để hoạt động như sau: http://twitter.com/intent/tweet?text=I+am+eating+branston+pickel+right+now&url=www.example.com&hashtags=branstonpickel – idodev

+0

và branson nên là branston :) –

2

Nếu bạn đang sử dụng PHP, bạn có thể sử dụng như sau:

<?php echo 'http://www.twitter.com/share?' . http_build_query(array(
    'url' => 'http://www.example.com', 
    'text' => 'I am eating #branstonpickel right now' 
)); ?> 

này sẽ làm tất cả mã hóa URL cho bạn và dễ đọc.

Để biết thêm thông tin về http_build_query, xem hướng dẫn PHP: http://us2.php.net/http_build_query

1

sử dụng encodeURIComponent để mã hóa url

0

Đối url với line jump, #, @ và unicode đặc biệt trong đó, các công việc sau:

var lineJump = encodeURI(String.fromCharCode(10)), 
hash = "%23", arobase="%40", 
tweetText = 'https://twitter.com/intent/tweet?text=Le signe chinois '+hans+' '+item.pinyin+': '+item.definition.replace(";",",")+'.' 
    +lineJump+'Merci '+arobase+'Inalco_Officiel '+arobase+'CRIparis ❤️ ' 
    +lineJump+hash+'Chinois '+hash+'MOOC' 
    +lineJump+'https://hanzi.cri-paris.org/', 
tweetTxtUrlEncoded = tweetText+ "" +encodeURIComponent('#'+lesson+encodeURIComponent(hans)); 
Các vấn đề liên quan