"M" at beginning of tweet via API interpreted as private message command?


A client of ours attempted to use our REST API integration to post a tweet that begins with “M Loyalty” (the name of their customer rewards program). We POSTed to ttps://api.twitter.com/1.1/statuses/update.json but the tweet was rejected with {"code":150,"message":"You cannot send messages to users who are not following you."}
But they were not trying to direct message.

Based on this I guess that the API interprets this the same was as tweeting via SMS, where an “M” command means “private message”? As per https://support.twitter.com/articles/14020#

Is there any way to turn this off in the API? We never never want to accidentally create private message just by magical text content. If we want to create private messages, we’d use the explicit API for that.

Any suggestions? Is there perhaps a way to escape the content to prevent interpreting these commands ? Thanks.


I’m afraid there’s no way to change this behaviour, it exists for legacy SMS reasons and has not been changed.


Prepending a “.” may circumvent the behavior. It is a common practice to circumvent default @mention behavior.