How to post in chat room using API

Unsolved Technical Support
  • Hi there,

    I'm working on a script that interact with NodeBB using API. I need to create a new chat room between 2 users and post content in it. In the API documentation, there's some data concerning "Accessing a chat room" and "Getting a chat room", but in write api there's nothing at all.

    Is it currently impossible to post content in the chat room from the api?

    I'm using NodeBB v1.17.0.
    Api key created in admin panel. No problem to read chat room but writing failed.

    {
        "status": {
            "code": "not-found",
            "message": "Invalid API call"
        },
        "response": {}
    }
    

Suggested Topics


  • 0 Votes
    6 Posts
    493 Views

    @julian I want to post large number of topics at once on JSON format, and it will be frequently use under one user id.

    Does body-parser has the ability? and is it easy to modify api/v3/topics ?

    Many Thanks,
    Khaled

  • 0 Votes
    3 Posts
    284 Views

    Thank you so much for your response.

    Submitted an issue for this: https://github.com/NodeBB/NodeBB/issues/7601

  • 2 Votes
    5 Posts
    2k Views

    @MJ My solution. For demo you can look at my forum (russian language)

    WARNING!!! It is dirty solution (change source code may cause problem with updating in future, you must know how to solve it) and I am not recommend use it, if you didn't understand what you do. Solution without localization, use it only if your forum use only one language (or change code and use number month)

    1. Set cutoff settings for timeago library

    Open acp > custom HTML&CSS > Custom Header and add this:

    <script type="text/javascript"> jQuery(document).ready(function() { jQuery.timeago.settings.cutoff = 2419200000; }); </script>

    In this example I set 28 days for relative date (1000 * 60 * 60 * 24 * 28 = 2419200000), you can change it.

    Didn't forget turn on checkbutton "Enable Custom Header" and save changes. After this, all dates older 28 days become unvisible.

    2 Change timeago library

    Onen file public/vendor/jquery/timeago and this code:

    if (!isNaN(data.datetime)) { if ( $s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) { $(this).text(inWords(data.datetime)); } }

    replace to this:

    if (!isNaN(data.datetime)) { if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) { $(this).text(inWords(data.datetime)); } else { var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec" ]; var day = data.datetime.getDate() var year = data.datetime.getFullYear(); var monthIndex = data.datetime.getMonth(); var hours = ("0" + data.datetime.getHours()).slice(-2); var minutes = ("0" + data.datetime.getMinutes()).slice(-2); $(this).text(day + ' ' + monthNames[monthIndex] + ' ' + year + ' ' + hours + ':' + minutes); } } 3. Restart forum

    All must work fine

    Revert changes back

    If you need revert changes, you can do it with command

    git checkout /public/vendor/jquery/timeago/jquery.timeago.js

    And remove added text from acp > custom HTML&CSS > Custom Header

  • 0 Votes
    3 Posts
    825 Views

    Hi Dan! As advised via chat, can you log in successfully onto this forum via Safari?

  • 0 Votes
    21 Posts
    7k Views

    @Fastidious hehe I did feel like I was using a sledgehammer to crack a nut at the time.