Advertisement:

Author Topic: Post to Discord  (Read 362 times)

Offline cedgil

  • Newbie
  • *
  • Posts: 1
Post to Discord
« on: February 05, 2018, 03:08:18 PM »
Not quite sure this is the right place, anyway, ad I ould lihe SMF to interact with Discord, I guess it might be.

A long time ago, I has SMF to post in a Simpleportal shoutbox with this code in post.php :
Code: [Select]
/////////////////////////////////////
// Post new subjects to shoutbox 1 //
/////////////////////////////////////
global $user_info, $board, $scripturl, $boardName, $topic;

$smcFunc['db_insert']('',
'{db_prefix}sp_shouts',
array(
'id_shoutbox' => 'int',
'id_member' => 'int',
'member_name' => 'string',
'log_time' => 'int',
'body' => 'string',
),
array(
1,
$user_info['id'],
$user_info['name'],
time(),
'[color=red][i]a posté nouveau sujet: [url='.$scripturl . '?topic=' . $topic . '.new#new'.']'.html_entity_decode($_POST['subject']).'[/url][/i][/color]',
),
array('id_shout')
);
////////////////////////////////////////////
// End of post new subjects to shoutbox 1 //
////////////////////////////////////////////

As I want to my forum to interact closely with Discord, I'd like to do the same thing : whenever there's a new post on the forum, I want it to be announced on Discord. Yet, I didn't manage to have it work, whatever I try.

Here's is the best help I have found is (magazine.gaiscioch.com/guides/posting_to_discord_using_php_and_webhooks.html) :

The first part of this script is a function that will handle posting the data to your discord.
Code: [Select]
<?PHP
function discordmsg($msg, $webhook) {
  if($webhook != "") {
    $ch = curl_init($webhook);
    $msg = "payload_json=" . urlencode(json_encode($msg))."";
   
    if(isset($ch)) {
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
      curl_setopt($ch, CURLOPT_POSTFIELDS, $msg);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      $result = curl_exec($ch);
      curl_close($ch);
      return $result;
    }
  }
}
?>

The next part is the actual action and message you wish to send.
Code: [Select]
<?PHP
// URL FROM DISCORD WEBHOOK SETUP
$webhook = "https://discordapp.com/api/webhooks/xxxxxxxxx/xxxxxxxx";
$msg = json_decode('
{
    "username":"BOTNAME",
    "content":"The message the BOTNAME posts.",
    "embeds": [{
        "title":"The Link Title",
        "description":"The Link Description",
        "url":"https://www.thelinkurl.com/",
        "color":DECIMALCOLORCODE,
        "author":{
            "name":"Site Name",
            "url":"https://www.sitelink.com/",
            "icon_url":"URLTOIMG"
        },
        "fields":[
            {
                "name":"LISTITEM1",
                "value":"LISTVALUE1",
                "inline":true
            },
            {
                "name":"LISTITEM2",
                "value":"LISTVALUE2",
                "inline":true
            },
            {
                "name":"LISTITEM3",
                "value":"LISTVALUE3",
                "inline":true
            }]
    }]
}
', true);
 ?>

Lastly there's the call to fire the script.
Code: [Select]
<?PHP
discordmsg($msg, $webhook); // SENDS MESSAGE TO DISCORD
?>

Could anyone help me with getting it to work? Thanks in advance for any help.

Offline Aleksi "Lex" Kilpinen

  • Support Specialist
  • SMF Super Hero
  • *
  • Posts: 16,323
  • Gender: Male
  • Don't worry, I'm n00b friendly
    • Aleksi.Kilpinen on Facebook
    • aleksi-kilpinen on LinkedIn
Re: Post to Discord
« Reply #1 on: February 08, 2018, 12:36:44 PM »
Perhaps try to see how similar stuff has been made for other platforms like Twitter?
For example there's this SimpleTwitter
A Finnish Support Specialist
 Happily running multiple SMF 2.0 installations.

"Before you allow people access to your forum, especially in an administrative position, you must be aware that that person can seriously damage your forum.
 Therefore, you should only allow people that you trust, implicitly, to have such access." -Douglas

Offline butch2k

  • Jr. Member
  • **
  • Posts: 367
  • Gender: Male
    • @butch2k on Twitter
    • Planète Roliste
Re: Post to Discord
« Reply #2 on: February 12, 2018, 02:56:37 AM »
I use the RSS bot to do this.

Offline Aleksi "Lex" Kilpinen

  • Support Specialist
  • SMF Super Hero
  • *
  • Posts: 16,323
  • Gender: Male
  • Don't worry, I'm n00b friendly
    • Aleksi.Kilpinen on Facebook
    • aleksi-kilpinen on LinkedIn
Re: Post to Discord
« Reply #3 on: February 14, 2018, 06:08:33 AM »
That's an option too. :)
A Finnish Support Specialist
 Happily running multiple SMF 2.0 installations.

"Before you allow people access to your forum, especially in an administrative position, you must be aware that that person can seriously damage your forum.
 Therefore, you should only allow people that you trust, implicitly, to have such access." -Douglas