Use the Messaging API to build bots that provide personalized experiences for your users on LINE.You associate your bot with a on the LINE Platform. The bot works behind the that is generated when you create the channel if you operate the account in bot mode.Note: As of April 18, 2019, the existing LINE@ account plans have been consolidated into the new LINE official account plans. This LINE Developers documentation mainly describes features available to LINE official accounts. For more information about migrating LINE@ accounts to LINE official accounts, see. How it worksThe Messaging API allows for data to be passed between your bot server and the LINE Platform. Requests are sent over HTTPS in JSON format. The user sends a message to the LINE official account.
The LINE Platform sends a webhook event to the webhook URL of the bot server. According to the webhook event, the bot server responds to the user through the LINE Platform.What you can do with the Messaging API Send reply messagesReply with a message to users who interacts with your LINE official account. Requires a reply token in the request.
ABOUT HitBTC API. HitBTC REST & Streaming API version 2.0 provides programmatic access to HitBTC’s next generation trading engine. We strongly recommend that our new customers use API version 2.0 to get the best trading experience. Apr 6, 2018 - Looking for a detailed documentation of the Singular REST API: Link to Singular.
For more information, see. Send push messagesSend messages directly to users whenever you want.
For more information, see. Send various message typesChoose from various types of messages to send to users including:.For more information, see.
![Best api docs Best api docs](/uploads/1/2/5/4/125427098/562708626.png)
Get user profilesGet LINE user profile information of users who interact with your LINE official account in one-on-one and group chats. You can get users' display names, profile images and status messages.For more information, see in the Messaging API reference. Join group chatsSend messages in group chats and get information about the members of the group. For more information, see. Use rich menusThe rich menu is a customizable menu which helps users discover how they can interact with your LINE official account. Users can access this menu from the chat at any time.For more information, see. Use beaconsUsing LINE Beacon, you can configure your LINE official account to interact with users whenever they enter the range of a beacon.
For more information on using beacons, see. Use account linkBy using the account link feature, providers (businesses and developers) can securely link the existing user accounts from their service with accounts belonging to LINE users that have friended providers' LINE official account. For more information, see. Get the number of sent messagesThis only returns the number of messages sent with the Messaging API, not LINE Official Account Manager.For more information, see the following sections in the Messaging API reference.Next stepsTo create a bot, create a Messaging API channel in the LINE Developers console.
A LINE official account is created together with the channel.For more information, see. Related pages.
↓. GrantI can’t begin to fathom the horror story that is every point of your reply, but I had to draw the line on point 9 Seriously?
No need for an error payload? You do realise when these “machines” break down it’s these so called “people” that troubleshoot the problem? In the world of IoT when we’re consuming API’s for which we have no access to the server logs, it’s extremely important to understand the nature of an error response. Furthermore, response codes as 409 CONFLICT explicitly require context is provided in the payload as to the nature of the problem. ↓.Nice article, but I disagree with few points made by gofree.8) REST API versioning is important when you still want to keep the older functionalities.
By stating that below is the example why this is makes sense-If large services are consuming your API and it’s not feasible for them to update when the previous version of endpoint is down it make sense to keep the old endpoint active and implement newer version of the API endpoint.9) As Grant said, errors(in plain human readable strings) are not for live tracking or so. This is more important to provide meaningful message so that the consumer services developers can figure out in case something went wrong.
This is not exactly related to REST convention but more related to how clear your API is. ↓. RobbWow, have to add my voice to the other responses. Good software development is not about sticking to the letter of a publication written in 19-whenever, at all costs.
It’s about usability, and we learn and evolve over time what works best. I’m perfectly ok with the fact that we as a community continue to use the term REST, and as for strictly just the terms of the acronym, it is still entirely appropriate. This article is a very good representation of current practices for creating usable, predictable, web APIs.That said, if you do decide to implement that smoke signal API you mentioned, it might serve you well to go back and read those old REST docs for tips ?. ↓. MarkAm trying to stick to a Restful design pattern for both JSON and HTML. My issue is the design for creating a new resource (amongst others, but this is the gist of the issue). IE:JSON – POST to /resource creates a new resource.JSON – GET to /resource shows a resource.HTML – POST to /resource creates a new resource.HTML – GET to /resource shows a resource.All good so far – but I need a HTML form actually create the data to send to the HTML POST.
Obviously POST and GET already do things. I could use:HTML – GET to /resource?create (or) GET to /resource?action=createBut that seem’s like a kludge and not intuitive.Any thoughts or ideas? ↓.
MarkReplying to myself (bad form, I know).The URLs above should have been.JSON – POST to /resources creates a new resource.JSON – GET to /resources/id shows a resource.HTML – POST to /resources creates a new resource.HTML – GET to /resources/id shows a resource.HTML – GET to /resources shows a list of resources.Maybe I make the URLHTML – GET to /resources/NEWWhich would show the HTML form to create a new resource which sends the POST, and keep a few keywords reserved. But really this is just a variation of the original post. ↓.Usually dot notation is meant to distinguish between minor and major releases.This way when you do a bug fix and update from v1.01 to v1.02, people do not need to update their URL.Having the major version in the URL can help if you decide to keep a legacy API for old customers, or have LTS versions. For example, if you make a major change that is not backward compatible, you can change to v2.0 and the only two URLs would be /v1 and /v2.This way if you make a change to the resource structure (maybe the new version changes how an object or data is structured to be more organized or intuitive) new consumers can use the new version, while old ones do not need to update their code. ↓. Markus PfeifferI agree with Frank’s points.
Public APIs should be relatively stable for (backwards) compatibility’s sake. Breaking your API with every minor release is a bad idea.
I would only add a /v2 if it’s fundamentally different and you need to keep both sets of APIs available at the same time. I would also suggest to make the API version independent from the software version.
Just because your software is now at v2.0 doesn’t mean you API has to change/break.If you add a new endpoint with a new software release (which doesn’t break the API) then only your updated clients will know about it, so I don’t see any advantage to adding the new endpoint below /v1.1.If your new client needs to talk to servers which don’t provide this new endpoint yet, you’ll need some way to query the exact server version anyway. Unless you want to guess the version by 404ing on certain endpoints.
↓. VincentI haven’t really tried this, but I was wondering – does HTML/HTTP/REST implemented with various serverside languages have a provision for inequality operators in the querystring?i.e. GET /cars?seats. ↓. Gauthier DelacroixThat’s not that simplein a RESTful API, one URL one resource. Different API versions implies different resource representations, that can be considered as different resourcesI’m actually not a big fan of header controlled APIs because you have to know, for each option, whether it’s controlled by a header or the URL or POST data.
That means that you have to spend more time reading the doc (HATEOAS APIs aim at being usable without reading any doc).Header controlled APIs are harder to use. If you want your API to be popular, the best is to keep it as simple as possible. ↓.The main reason I don’t like like the version in the URI is because each URI One resource.If I have an API that returns pens and I can get pen 10 I now change the interface of my API, I change the a key in the JSON reply. This is a breaking change so I now need to update the version, but pen 10 is still pen 10. There is only one pen 10 and its URI is.
If version was in the URI I would have two pen 10’s but in the real/physical world there is only one pen 10. It is the interface to this pen that has changed so using the header makes sense.If I talk you in english, it is you.
If I then change interface and talk to you in spanish, it is still you. You have not change just the interface I am using to communicate with you. You would need a single never changing URI.I agree with you for beginners version in the URI is easier to consume.
↓. Karl RainholdI would concur that a consistent path prevents consumers from having to update their applications when the version change might be minor, while it does make sharing the responses and clearly knowing from logs which version was requested more problematic.So what happens when you provide more than one format, like XML or JSON, on the same service? That’s fine if you are not caching the responses. If the service responses are cacheable, then your cache-key needs to be able to distinguish the responses that are populating the cache. If those responses are dependent on the request header, you have just made your CDN configuration much more complex, and you may have reduced or eliminated the cacheability.This begs a different question on versioning, one of parallel versus serial. If you want to provide a flexible service, consumed in more than one way, then you either effectively have multiple service paths for the same service but different output formats, or you have the same path with the headers (request and response) distinguishing what the payload looks like.
Protecting your origin and scaling your offering becomes more of challenge going the header route. ↓.
RobertI’m in support of having major versions as part of the path. It’s the best way to continue support for legacy software without restricting future releases of your API.For example, say your API has an endpoint for cars, /api/cars. Then, one day you realize that “automobiles” is a more accurate description, so you change the endpoint to /api/automobiles. Naturally, this means updating any references returned in other requests, so any arrays for 'cars' would change to 'automobiles' throughout the rest of the API.So what happens to all of the software developed using the original API? Either you support both calls and return redundant data, bloating the response, or you’re forced to update the software, which isn’t always a quick thing depending on the outlet (iOS?)If you include the version in the path, then the original endpoint /api/v1/cars can continue to live on, while fundamental changes move to a new path /api/v2/automobiles.Sorry for resurrecting this, just thought it was worth mentioning for future readers. ↓.
ShyjuService versioning is an important concept in middleware/integration technology and version should be in the path for maintaining multiple versions at a time.For example,Suppose a service is consumed by multiple end applications and the service provider what to change the service output format or add some more data in it. In this case, it is import to maintain the previous version of the service to ensure that the change of the service will not effect to the business. The consuming application will not be in a position to make the necessary changes inline with service provider because of various reasons like budget constraint, release schedule etc. So in this case who ever wants, they can continue with existing version until a period of time.
For new application or some of the application can migrate to new version based on the convenience.