Go Back   vb.org Archive > vBulletin Modifications > Archive > Modification Graveyard
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
vBulletin to Twitter, live tweets of new threads Details »»
vBulletin to Twitter, live tweets of new threads
Version: 1.00, by buro9 buro9 is offline
Developer Last Online: Jul 2012 Show Printable Version Email this Page

Category: Miscellaneous Hacks - Version: 4.0.x Rating:
Released: 01-26-2010 Last Update: Never Installs: 272
Uses Plugins
Re-useable Code Additional Files Translations  
No support by the author.

This should work on all 4 and 3 versions of vBulletin as it's trivial.

Description:

You start a new thread, this hack makes a tweet about it on your twitter account.

This are live updates... not delayed, not based on RSS... the instant the thread is started, a tweet is made. This is how this hack differs from other hacks.

Why:

Mostly for SEO, but also as an alert system.

For SEO the idea is simply that search engines are drinking from the Twitter firehose and are indexing the links that are tweeted. Faster and increased indexing of your site benefits you by helping it be found.

For alerts it means that users are able to use whatever twitter client they wish to obtain updates. A lot of these provide filtering capabilities, so they're able to get a live filtered stream of updates that interest them. This works very well when you also use thread prefixes.

Pre-requisites:

You should have an account on bit.ly for URL shortening, and you should have an account on Twitter.

Go and register if you haven't yet:
http://bit.ly/
http://twitter.com/

Installation:

NOTE: Most problems are related to not putting your bit.ly or twitter user details in the plugin. Follow the instructions carefully!

Upload the two attached files to your forum root. These are twitter and bitly classes that enable the hack to work, you can also download these from the author:
http://classes.verkoyen.eu/bitly
http://classes.verkoyen.eu/twitter/

Go to the plugin manager and create a new plugin with the following details:
Product: vBulletin
Hook: newthread_post_complete
Title: Tweet to Twitter

PHP Code: [See below]

To configure the PHP code you need to know your bit.ly API key (go get it from bit.ly/account) and your username and password for twitter.

You also should make a list of the forumIds that are non-public as you will want to put these in the array provided.

i.e. if your admin forum is forumId = 7 and you also have a private forum for regular members which is forumid = 12, then you will want this:
$excludedForums = array(7, 12);

The PHP code should be this, with all of the relevant values for your forum inserted (replace everything bolded, including the < and > bits):
PHP Code:
// The array below are the ids of non-public forums, update these to be your admin forum ids or anything non-public by default
$excludedForums = array(0);

// If you are having trouble getting bitly URL shortening to work... disable it!
$useBitly true;

if (!
in_array($foruminfo[forumid], $excludedForums)) {
    
$shortUrl 'http://www.yourforumsdomain.com/showthread.php?t='.$newpost[threadid];

    if (
$useBitly) {
      
// http://classes.verkoyen.eu/bitly
      
require_once 'bitly.php';
      
$bitly = new Bitly('<bit.ly username>''<bit.ly API key>');
      
$shortUrl $bitly->shorten($shortUrl);
    }

    
$tweet '';
    if (isset(
$newpost['prefixid']) && $newpost['prefixid'] != '') {
        
$tweet $vbphrase['prefix_'.$newpost['prefixid'].'_title_plain'].' ';
    }
    
$tweet .= $newpost['title'].' '.$shortUrl;

    
// http://classes.verkoyen.eu/twitter/
    
require_once 'twitter.php';
    
$twitter = new Twitter('<twitter username>','<twitter password>');
    
$twitter->updateStatus($tweet);

So the bit.ly line might look like this after you've put your values in:
$bitly = new Bitly('testUser', 'R_hj3456hgf3hig56hi2gf6');
NOT
$bitly = new Bitly('<testUser>', '<R_hj3456hgf3hig56hi2gf6>');
See? Remove those <> bits, they just show what to replace.

The shortUrl line might look like this:
$shortUrl = 'http://www.vbulletin.com/forum/showthread.php?t='.$newpost[threadid];

The Twitter line might look like this:
$twitter = new Twitter('stephenfry','op1umisn1ce');

All make sense?

And that's it. Save and activate the plugin and create a test thread.

Now whenever a new thread is started, a tweet will be made to twitter instantly.

You can see this in effect here:
http://twitter.com/lfgss

That is being pushed new threads for http://www.lfgss.com/ and it's working perfectly.

Any questions?

FAQ (Frequently Asked Questions)

Q: It doesn't work!

A: That's not a question, however if it doesn't work then it's extremely likely you got your username and passwords wrong or left the < > signs in there. Double-check and do it again.

Q: I see an "INVALID_JSON" error

A: Disable bitly by setting $useBitly to false.
Q: I see an "You must be authenticated to access shorten" error

A: The credentials that you entered are either wrong, or you made a mess of the syntax. You did remove the < > when you put your values in right? Did you check the example given above?

Q: I see an error that says "Warning: curl_setopt_array() [function.curl-setopt-array]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in [path]/bitly.php"

A: Wow, that's a good one... but easily fixable. Insert this at line 136 (just after the CURL options) in bitly.php:
PHP Code:
$no_hack_needed = (ini_get('safe_mode') !== '1' && ini_get('open_basedir') === false);
if (
$no_hack_needed) {
  
$options[CURLOPT_FOLLOWLOCATION] = true;
} else {
  
$options[CURLOPT_FOLLOWLOCATION] = false;
  
$options[CURLOPT_HEADER] = true;

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #112  
Old 01-31-2010, 09:50 AM
iguano iguano is offline
 
Join Date: May 2009
Posts: 104
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It works but when i go on twitter i see "unknow file"and when i click on the link come out 404 Not Found

( Not Found

The requested URL /showthread.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.)
Reply With Quote
  #113  
Old 01-31-2010, 01:35 PM
cagbaazee cagbaazee is offline
 
Join Date: Jul 2007
Posts: 179
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

With due regards I would like to bring to your kind notice and would like

to have your kind favour in solving my problem.

1. When some one post it immediately goes to twitter site and by clicking

on it - it displays "No Thread specified. If you followed a valid link,

please notify the administrator."

2.Secondly, When somebody adds new thread, it doesnot appears, but when he add it twice then it appear.

3. When someone post it , but it doesnot mention the name of title at bid.ly, it only mention gs community

I, therefore, like to have your kind favour to get it solved as soon as

possible as I need the "TITLE" to be displayed. Kindly guide me in this

matter.

Regards
copy of screenshot here
Reply With Quote
  #114  
Old 01-31-2010, 01:40 PM
buro9 buro9 is offline
 
Join Date: Feb 2002
Location: London, UK
Posts: 585
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by iguano View Post
It works but when i go on twitter i see "unknow file"and when i click on the link come out 404 Not Found

( Not Found

The requested URL /showthread.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.)
Do you have your forums in a different folder? Did you adjust the URL to match your forums?
Quote:
Originally Posted by cagbaazee View Post
With due regards I would like to bring to your kind notice and would like

to have your kind favour in solving my problem.

1. When some one post it immediately goes to twitter site and by clicking

on it - it displays "No Thread specified. If you followed a valid link,

please notify the administrator."


2.Secondly, When somebody adds new thread, it doesnot appears, but when he add it twice then it appear.

3. When someone post it , but it doesnot mention the name of title at bid.ly, it only mention gs community

I, therefore, like to have your kind favour to get it solved as soon as

possible as I need the "TITLE" to be displayed. Kindly guide me in this

matter.


Regards
copy of screenshot here
1) Do you have your forums in your forum root? Did you adjust the URL to match your site?

2) There's no reason for it to be called twice, the plugin will either work all the time, or fail all the time. Please double-check the instructions.

3) Twitter will show precisely what you tell it to, bit.ly statistics on the other hand will go and fetch the page and will show the title of the page it fetched. So in the case of bit.ly it is resolving and fetching the URL and show the title of that page. You've already said that problem #1 is that you get a 404 not found, which suggests that your URL is wrong. bit.ly is showing the title of your 404 page because that's currently where the URL ends. Fix #1 and #3 will also be fixed.
Reply With Quote
  #115  
Old 01-31-2010, 01:47 PM
cagbaazee cagbaazee is offline
 
Join Date: Jul 2007
Posts: 179
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No i donot any other forum at my site , just one forum.

2. can u tell how to fix it #1 & #3.. do i hv install and follow the instruction again.

Do reply

Thanks

Quote:
Originally Posted by buro9 View Post
Do you have your forums in a different folder? Did you adjust the URL to match your forums?

1) Do you have your forums in your forum root? Did you adjust the URL to match your site?

2) There's no reason for it to be called twice, the plugin will either work all the time, or fail all the time. Please double-check the instructions.

3) Twitter will show precisely what you tell it to, bit.ly statistics on the other hand will go and fetch the page and will show the title of the page it fetched. So in the case of bit.ly it is resolving and fetching the URL and show the title of that page. You've already said that problem #1 is that you get a 404 not found, which suggests that your URL is wrong. bit.ly is showing the title of your 404 page because that's currently where the URL ends. Fix #1 and #3 will also be fixed.
Reply With Quote
  #116  
Old 01-31-2010, 01:54 PM
buro9 buro9 is offline
 
Join Date: Feb 2002
Location: London, UK
Posts: 585
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

See this bit:
PHP Code:
$shortUrl 'http://www.yourforumsdomain.com/showthread.php?t='.$newpost[threadid]; 
I'm pretty sure you've set it to:
PHP Code:
$shortUrl 'http://www.gurusecret.info/showthread.php?t='.$newpost[threadid]; 
When it should be:
PHP Code:
$shortUrl 'http://www.gurusecret.info/vbforum/showthread.php?t='.$newpost[threadid]; 
Assuming I've googled correctly and that is your site.
Reply With Quote
  #117  
Old 01-31-2010, 02:20 PM
cagbaazee cagbaazee is offline
 
Join Date: Jul 2007
Posts: 179
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

here is my config..

// The array below are the ids of non-public forums, update these to be your admin forum ids or anything non-public by default
$excludedForums = array(7);

if (!in_array($foruminfo[forumid], $excludedForums)) {
// http://classes.verkoyen.eu/bitly
require_once 'bitly.php';

// http://classes.verkoyen.eu/twitter/
require_once 'twitter.php';

$bitly = new Bitly('guru', 'R_d3383e27ad33b187a20e78d68c063be');
$shortUrl = $bitly->shorten('http://www.mysite.info/vbforum/showthread.php?t='.$newpost[threadid]);

$tweet = '';
if (isset($newpost['prefixid']) && $newpost['prefixid'] != '') {
$tweet = $vbphrase['prefix_'.$newpost['prefixid'].'_title_plain'].' ';
}
$tweet .= $newpost['title'].' '.$shortUrl;

$twitter = new Twitter('guru','mypassword');
$twitter->updateStatus($tweet);
}

please check whether is it okay or not

If it s okay.. but i didnot make any change on it . it is same config what i do.
or if it is wrong then please explain correct config.

Do reply
Reply With Quote
  #118  
Old 02-01-2010, 12:40 PM
tenjinzan tenjinzan is offline
 
Join Date: Nov 2007
Location: Florida
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Got it working perfectly first try. I read through the comments here, but I didn't see it (I may have missed, so forgive me if I did). Is there a way to include the Poster's name in the tweet? I'm not sure what the syntax would be for the tweet line.

Basically, I just want it to say "Thread name" by "Poster" ... bit.ly/url I can see WHERE to put it, but I'm not sure of the variable that refers to the poster of a thread.
Reply With Quote
  #119  
Old 02-01-2010, 06:45 PM
tobe12's Avatar
tobe12 tobe12 is offline
 
Join Date: Mar 2006
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is there a way to make it tweet RSS feeds as well?
Reply With Quote
  #120  
Old 02-04-2010, 02:01 AM
nextslit's Avatar
nextslit nextslit is offline
 
Join Date: May 2009
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would like to thank you for this great mod buro9 , realy nice try : )
and working perfect in 4.0.1
Reply With Quote
  #121  
Old 02-04-2010, 02:26 AM
Videx's Avatar
Videx Videx is offline
 
Join Date: Feb 2007
Posts: 3,085
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not working with the new BBR - vB Event Forums. Posting an event doesn't tweet the event.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:14 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08466 seconds
  • Memory Usage 2,343KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (5)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete