Go Back   vb.org Archive > vBulletin Modifications > Archive > Modification Graveyard

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
  #532  
Old 09-07-2010, 12:28 AM
MikeCyber MikeCyber is offline
 
Join Date: Sep 2010
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Videx View Post
Not nearly as simple as just installing a mod (vBulletin2Twitter). Out of curiosity, why did you go to all this trouble instead?
I'm working with it too. My reasoning being it is a challenge, with a reward of knowledge. As I haven't successfully written my own mod, fixing this one helps me towards my goal. If I had started with vBulletin2Twitter I'd learn less.
Reply With Quote
  #533  
Old 09-07-2010, 02:21 AM
fountainmass fountainmass is offline
 
Join Date: Jul 2007
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Videx View Post
Out of curiosity, why did you go to all this trouble instead?
Quote:
Originally Posted by MikeCyber View Post
My reasoning being it is a challenge, with a reward of knowledge. As I haven't successfully written my own mod, fixing this one helps me towards my goal. If I had started with vBulletin2Twitter I'd learn less.
+1

But yes, you are right, it isn't as simple as installing another mod. In fact, if I didn't get it right pretty quickly, I would have done just that.
Reply With Quote
  #534  
Old 09-10-2010, 12:38 AM
bransworld bransworld is offline
 
Join Date: Feb 2009
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I had this working fine for months, but recently when someone posts a message they have been receiving the following error message....

Basic authentication is not supported on line 204 in /home/monopal5/public_html/twitter.php
#0 /home/monopal5/public_html/twitter.php(648):
Twitter->doCall('statuses/update...', Array, true)
#1 /home/monopal5/public_html/newthread.php(262) : eval()'d code(26):
Twitter->updateStatus('Will We Go... D...')
#2 /home/monopal5/public_html/newthread.php(262): eval()
#3 {main}

Fatal error: Basic authentication is not supported on line 204 in [path]/twitter.php in [path]/vb/vb.php on line 284


So i uninstalled and reinstalled and I am now getting this error message....
You must be authenticated to access shorten on line 193 in /home/monopal5/public_html/bitly.php
#0 /home/monopal5/public_html/bitly.php(382): Bitly->doCall('shorten', Array)
#1 /home/monopal5/public_html/newthread.php(262) : eval()'d code(14): Bitly->shorten('http://www.mono...')
#2 /home/monopal5/public_html/newthread.php(262): eval()
#3 {main}

Warning: Invalid error type specified in [path]/vb/vb.php on line 284


Can anyone help with this??
Thanks,
Brandon
Reply With Quote
  #535  
Old 09-11-2010, 01:37 AM
Videx's Avatar
Videx Videx is offline
 
Join Date: Feb 2007
Posts: 3,085
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by bransworld View Post
Can anyone help with this??
We might be able to. But only after you've assured us you've read this entire thread. Or at least starting from https://vborg.vbsupport.ru/showpost....&postcount=507.
Reply With Quote
  #536  
Old 09-11-2010, 02:45 AM
asuccar asuccar is offline
 
Join Date: Dec 2009
Posts: 52
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm so sorry to bug...but I quadruple checked bit.ly user & api as well as twitter details BUT i still get the error:

Quote:
Basic authentication is not supported on line 204 in /home/afourso1/public_html/twitter.php
#0 /home/afourso1/public_html/twitter.php(648): Twitter->doCall('statuses/update...', Array, true)
#1 /home/afourso1/public_html/newthread.php(274) : eval()'d code(24): Twitter->updateStatus('Test http://bit...')
#2 /home/afourso1/public_html/newthread.php(274): eval()
#3 {main}


Fatal error: Basic authentication is not supported on line 204 in [path]/twitter.php in [path]/vb/vb.php on line 287
#0 vb_error_handler(256, Basic authentication is not supported on line 204 in /home/afourso1/public_html/twitter.php , /home/afourso1/public_html/vb/vb.php, 287, Array ([exception] => TwitterException Object ([] => Array ([100] => Continue,[101] => Switching Protocols,[200] => OK,[201] => Created,[202] => Accepted,[203] => Non-Authoritative Information,[204] => No Content,[205] => Reset Content,[206] => Partial Content,[300] => Multiple Choices,[301] => Status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.,[302] => Status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.,[303] => See Other,[304] => Not Modified,[305] => Use Proxy,[306] => (Unused),[307] => Temporary Redirect,[400] => Bad Request,[401] => Unauthorized,[402] => Payment Required,[403] => Forbidden,[404] => Not Found,[405] => Method Not Allowed,[406] => Not Acceptable,[407] => Proxy Authentication Required,[408] => Request Timeout,[409] => Conflict,[411] => Length Required,[412] => Precondition Failed,[413] => Request Entity Too Large,[414] => Request-URI Too Long,[415] => Unsupported Media Type,[416] => Requested Range Not Satisfiable,[417] => Expectation Failed,[500] => Internal Server Error,[501] => Not Implemented,[502] => Bad Gateway,[503] => Service Unavailable,[504] => Gateway Timeout,[505] => HTTP Version Not Supported),[] => Basic authentication is not supported,[] => ,[] => 0,[] => /home/afourso1/public_html/twitter.php,[] => 204,[] => Array ([0] => Array ([file] => /home/afourso1/public_html/twitter.php,[line] => 648,[function] => doCall,[class] => Twitter,[type] => ->,[args] => Array ([0] => statuses/update.xml,[1] => Array ([status] => Test http://bit.ly/bmSd2V),[2] => 1)),[1] => Array ([file] => /home/afourso1/public_html/newthread.php(274) : eval()'d code,[line] => 24,[function] => updateStatus,[class] => Twitter,[type] => ->,[args] => Array ([0] => Test http://bit.ly/bmSd2V)),[2] => Array ([file] => /home/afourso1/public_html/newthread.php,[line] => 274,[function] => eval))),[code] => 256)) called at [(null):0] #1 trigger_error(Basic authentication is not supported on line 204 in /home/afourso1/public_html/twitter.php , 256) called at [/home/afourso1/public_html/vb/vb.php:287] #2 vB::handleException(TwitterException Object ([] => Array ([100] => Continue,[101] => Switching Protocols,[200] => OK,[201] => Created,[202] => Accepted,[203] => Non-Authoritative Information,[204] => No Content,[205] => Reset Content,[206] => Partial Content,[300] => Multiple Choices,[301] => Status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.,[302] => Status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.,[303] => See Other,[304] => Not Modified,[305] => Use Proxy,[306] => (Unused),[307] => Temporary Redirect,[400] => Bad Request,[401] => Unauthorized,[402] => Payment Required,[403] => Forbidden,[404] => Not Found,[405] => Method Not Allowed,[406] => Not Acceptable,[407] => Proxy Authentication Required,[408] => Request Timeout,[409] => Conflict,[411] => Length Required,[412] => Precondition Failed,[413] => Request Entity Too Large,[414] => Request-URI Too Long,[415] => Unsupported Media Type,[416] => Requested Range Not Satisfiable,[417] => Expectation Failed,[500] => Internal Server Error,[501] => Not Implemented,[502] => Bad Gateway,[503] => Service Unavailable,[504] => Gateway Timeout,[505] => HTTP Version Not Supported),[] => Basic authentication is not supported,[] => ,[] => 0,[] => /home/afourso1/public_html/twitter.php,[] => 204,[] => Array ([0] => Array ([file] => /home/afourso1/public_html/twitter.php,[line] => 648,[function] => doCall,[class] => Twitter,[type] => ->,[args] => Array ([0] => statuses/update.xml,[1] => Array ([status] => Test http://bit.ly/bmSd2V),[2] => 1)),[1] => Array ([file] => /home/afourso1/public_html/newthread.php(274) : eval()'d code,[line] => 24,[function] => updateStatus,[class] => Twitter,[type] => ->,[args] => Array ([0] => Test http://bit.ly/bmSd2V)),[2] => Array ([file] => /home/afourso1/public_html/newthread.php,[line] => 274,[function] => eval)))) called at [(null):0]
Reply With Quote
  #537  
Old 09-11-2010, 09:26 AM
Liquid1ce's Avatar
Liquid1ce Liquid1ce is offline
 
Join Date: Feb 2004
Location: /root
Posts: 196
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is is possible to add keyword's i know i can add in the topic eg: #vbulletin and this will show up, but would it be possible to add so it wont show up in topic line if you know what i mean
Reply With Quote
  #538  
Old 09-11-2010, 02:21 PM
pinoquio46 pinoquio46 is offline
 
Join Date: Oct 2006
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

@asuccar

find in plugin:

PHP Code:
$tweet .= $newpost['title'].' '.$shortUrl
Change to:

PHP Code:
$tweet .= utf8_encode($newpost['title']).' '.$shortUrl
Int?
Reply With Quote
  #539  
Old 09-11-2010, 03:25 PM
Videx's Avatar
Videx Videx is offline
 
Join Date: Feb 2007
Posts: 3,085
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Fatal error: Basic authentication is not supported on line 204 in [path]/twitter.php in [path]/vb/vb.php on line 287
The direct replacement for this mod is here: vBulletin2Twitter

Now people, please don't reply to this thread any longer as it will just bump this information lower. This particular mod no longer works because Twitter changed their requirements. Please go to the mod above.
Reply With Quote
  #540  
Old 09-11-2010, 03:40 PM
pinoquio46 pinoquio46 is offline
 
Join Date: Oct 2006
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

@Videx

This plugin works fine for me.

I assume that the user @asuccar make this change : https://vborg.vbsupport.ru/showpost....&postcount=528
and followed my tip on my previous post.

by chance, have you tried putting Latin characters in thread titles (? ? ?) using vBulletin2Twitter, it don?t apear in twitter!!

And another thing, while is not created an exclusion list of forums in mod vBulletin2Twitter I'll use this plugin.

int?
Reply With Quote
  #541  
Old 09-16-2010, 07:32 AM
raiderlax's Avatar
raiderlax raiderlax is offline
 
Join Date: Sep 2006
Location: Ontario, Canada
Posts: 499
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can't get this working. I get a whole bunch of errors.
Reply With Quote
Reply

Thread Tools

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 05:08 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.12750 seconds
  • Memory Usage 2,345KB
  • 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
  • (4)bbcode_php
  • (6)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
  • (2)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