Hey Bryan,

Thanks for sharing the solution with the list. Glad it's working for you
now.
Matt

On Thu, Jun 24, 2010 at 12:52 PM, Bryan <bryan.p...@gmail.com> wrote:

> Interesting; thank you. I found the solution using your information.
> Basically, PHP acts funny with raw utf characters, and in reality I
> needed to pass three hex characters like so:
>
> $message =
> sprintf("1234567890123412345678901234123456789012341234567890123412345678901234123456789012341234567890123412345678901234123456789012341234567890123\xE2\x80\xA6");
> //
> utf(ellipsis)
>
> Note the three hex characters on the end, and the 139 numbers
> proceeding it. This returned a 200 and actually tweeted.
>
> Thanks again everyone.
>
> On Jun 24, 2:05 pm, Taylor Singletary <taylorsinglet...@twitter.com>
> wrote:
> > Hey Brian,
> >
> > I don't know enough about the internals of Abraham's library to know how
> it
> > handles UTF-8 characters when generating POST bodies or signature base
> > strings, but here's an example of successfully tweeting with the UTF-8
> > ellipsis:
> >
> > I'm pretty surprised at how the status is encoded in the base string in
> this
> > example (kind of cargo culting it), but there may also be other alternate
> > and valid ways of specifying it. Definitely not intuitive. Here's the
> > published status:http://twitter.com/oauth_dancer/status/16952668541
> >
> > URLhttp://api.twitter.com/1/statuses/update.xml
> >
> > POST body
> > status=Unicode+ellipsis+are+fun:+…
> >
> > Signature Base String
> > POST&http%3A%2F%2Fapi.twitter.com
> >
> %2F1%2Fstatuses%2Fupdate.xml&oauth_consumer_key%3Dri8JxYK2ddwSV5xIUfNNvQ%26
> oauth_nonce%3D965MjJOs4kef7MBA8QggxIJHHzyRbMlnQ3WTB7VNV0%26oauth_signature_
> method%3DHMAC-SHA1%26oauth_timestamp%3D1277405988%26oauth_token%3D119476949
> -gF0B5O1Wwa2UqqIwopAhQtQVTzmfSIOSiHQS7Vf8%26oauth_version%3D1.0%26status%3D
> Unicode%2520ellipsis%2520are%2520fun%253A%2520%25E2%2580%25A6
> >
> > Authorization Header
> > OAuth oauth_nonce="LnME61XWvwjp3ORhhLd5MMEb9EDO1DeYIsb7HfhoeE4",
> > oauth_signature_method="HMAC-SHA1", oauth_timestamp="1277394877",
> > oauth_consumer_key="ri8JxYK2ddwSV5xIUfNNvQ",
> > oauth_token="819797-torCkTs0XK7H2Y2i1ee5iofqkMC4p7aayeEXRTmlw",
> > oauth_signature="UKwl3lVQygmKAMsIffFCWlLQaeg%3D", oauth_version="1.0"
> >
> > Which returns a XML status representation with the ellipsis:
> >
> > <text>Unicode ellipsis are fun: &#8230;</text>
> >
> >
> >
> > On Thu, Jun 24, 2010 at 11:48 AM, Bryan <bryan.p...@gmail.com> wrote:
> > > Certainly:
> >
> > > <?php
> >
> > > require_once('twitteroauth.php');
> >
> > > $message = "This is an @test … "; // utf(ellipsis)
> > > //$message = "This is an @test ... "; // ascii(three periods)
> > > echo $message."<br />";
> >
> > > $message = strlen($message) > 140 ? substr($message,0,140) : $message;
> >
> > > $connection = new TwitterOAuth("X", "X", "X", "X");
> > > $status = $connection->post('statuses/update', array('status' =>
> > > $message));
> > > echo $connection->http_code == 200 ? "SUCCESS" : "FAIL";
> >
> > > ?>
> >
> > > As you can see, I'm using Abraham's oauth library and my sensitive
> > > data has been sanitized. Thanks again.
> >
> > > On Jun 24, 12:19 pm, Matt Harris <thematthar...@twitter.com> wrote:
> > > > Hey Bryan,
> >
> > > > Can you share the code you are using to send the Tweet, and if
> possible
> > > the
> > > > post body sent by your code.
> >
> > > > Thanks,
> > > > Matt
> >
> > > > On Thu, Jun 24, 2010 at 10:06 AM, Bryan <bryan.p...@gmail.com>
> wrote:
> > > > > Great; thanks for the clarification Matt. But I'm still having
> trouble
> > > > > actually tweeting UTF-8 characters. If I tweet this:
> >
> > > > > "This is an @test … "
> >
> > > > > without quotes where you can see an actual ellipsis (single UTF-8
> > > > > character), I get a successful response code (200), but nothing is
> > > > > actually tweeted. If I tweet this:
> >
> > > > > "This is an @test ... "
> >
> > > > > without quotes where you can see just three dots, I get a
> successful
> > > > > response code (200), and the tweet is actually successful.
> >
> > > > > On Jun 23, 4:14 pm, themattharris <thematthar...@twitter.com>
> wrote:
> > > > > > To clarify the situation with UTF-8 characters.
> >
> > > > > > Special UTF-8 characters are treated the same as the standard
> > > > > > alphanumeric set, in that we will count each one as a single
> letter.
> > > > > > So a string like "wondering what's happening …" will be treated
> as 27
> > > > > > characters (without the quotes).
> >
> > > > > > When we receive a Tweet with UTF-8 characters in it we convert
> them
> > > > > > into their HTML entity representation to ensure consistency
> between
> > > > > > clients and reliable storage in the databases. This means, when
> you
> > > > > > query the API, you may notice the Tweet has more than 140
> characters
> > > > > > in it. This is expected and is a result of the UTF-8 conversion.
> >
> > > > > > You can read more about how we count characters on the
> dev.twitter
> > > > > > site [1].
> >
> > > > > > Hope that answers your questions,
> > > > > > Matt
> >
> > > > > > 1.http://dev.twitter.com/pages/counting_characters
> >
> > > > > > On Jun 11, 3:18 pm, Sam Ramji <sra...@apigee.com> wrote:
> >
> > > > > > > We've built a free tool with similar capabilities but including
> > > OAuth
> > > > > > > authentication and contextual links to the full Twitter API,
> and no
> > > > > > > login required in order to save API calls.
> >
> > > > > > > You can see the same lat/long query here:
> >
> > >http://app.apigee.com/console/5ffbfabd-04c0-4802-a71d-542c23a1ec0e/re.
> > > > > ..
> >
> > > > > > > Hope this is helpful - we are seeking feedback on the tool if
> you
> > > have
> > > > > > > any.
> >
> > > > > > > Thanks,
> >
> > > > > > > Sam
> >
> > > > > > > On Jun 11, 9:48 am, Bryan <bryan.p...@gmail.com> wrote:
> >
> > > > > > > > Hey Abraham. The above example is dated. My point is
> appending
> > > > > > > > max_result=1 onto any verified result results in a 404:
> >
> > > > >
> http://hurl.it/hurls/08a6b684b494cab6138754d7b7470d9895968d59/88bbdc8.
> > > ..
> >
> > > > > > > > is okay, but with max_results=1:
> >
> > > > >
> http://hurl.it/hurls/df8773b96e453cfd5426123c3ba4354fc2d96769/6d952ea.
> > > ..
> >
> > > > > > > > returns a 404
> >
> > > > > > > > Thanks for the link; that's a very useful tool!
> >
> > > > > > > > On Jun 11, 11:40 am, Abraham Williams <4bra...@gmail.com>
> wrote:
> >
> > > > > > > > > The lat/long you are passing to the API are in the Yellow
> Sea
> > > so
> > > > > Twitter is
> > > > > > > > > 404ing as it does not have any places near there.
> >
> > > > >
> http://hurl.it/hurls/db27e3e9bce56f7f9a8209b935af6a25d5fa5677/2775b26.
> > > ..
> >
> > > > > > > > > Abraham
> > > > > > > > > -------------
> > > > > > > > > Abraham Williams | Hacker Advocate |http://abrah.am
> > > > > > > > > @abraham |http://projects.abrah.am|http://blog.abrah.am
> > > > > > > > > This email is: [ ] shareable [x] ask first [ ] private.
> >
> > > > > > > > > On Fri, Jun 11, 2010 at 07:28, Bryan <bryan.p...@gmail.com
> >
> > > wrote:
> > > > > > > > > > Matt--
> >
> > > > > > > > > > Okay thanks for the reply. I'm building a news aggregator
> so
> > > the
> > > > > goal
> > > > > > > > > > was to enter the location manually. Still, I'm having
> trouble
> > > > > with the
> > > > > > > > > > geo-coding method. I'm using Abraham's php library and I
> do
> > > the
> > > > > > > > > > following:
> >
> > > > > > > > > >        $location =
> $connection->get('geo/reverse_geocode',
> > > > > array('lat' =>
> > > > > > > > > > '37.75' , 'long' => '122.68'));
> > > > > > > > > >        echo $connection->http_code;
> >
> > > > > > > > > > Which returns 404. $location->id is empty. Any thoughts
> as to
> > > > > what I'm
> > > > > > > > > > doing wrong?
> >
> > > > > > > > > > On Jun 11, 9:21 am, Matt Harris <
> thematthar...@twitter.com>
> > > > > wrote:
> > > > > > > > > > > Hey Bryan,
> >
> > > > > > > > > > > Status updates only accept lat/long or place_id. There
> > > isn't a
> > > > > way of
> > > > > > > > > > > providing plain text locations for these fields. If you
> > > wish to
> > > > > display a
> > > > > > > > > > > textual representation of where someone is on your app
> you
> > > > > would need to
> > > > > > > > > > > carry out a reverse geocode first.
> >
> > > > > > > > > > > I don't know the method you are using to obtain the
> > > location
> > > > > but
> > > > > > > > > > generally
> > > > > > > > > > > we see developers use the lat/long returned by the
> browser
> > > or
> > > > > device.
> >
> > > > > > > > > > > One thing that might be useful to know is that we
> perform a
> > > > > reverse
> > > > > > > > > > lookup
> > > > > > > > > > > on the lat/long when we display the tweet, converting
> it to
> > > > > some textual
> > > > > > > > > > > description like "SoMa, San Francisco", or "from here"
> as
> > > > > appropriate.
> >
> > > > > > > > > > > Hope that answers your question,
> > > > > > > > > > > Matt
> >
> > > > > > > > > > > On Fri, Jun 11, 2010 at 6:41 AM, Bryan <
> > > bryan.p...@gmail.com>
> > > > > wrote:
> > > > > > > > > > > > Hey everyone, is there a way to geo-tweet with the
> API
> > > > > without knowing
> > > > > > > > > > > > the Lat/Long? In other words, can I say "San
> Francisco,
> > > CA"
> > > > > or search
> > > > > > > > > > > > for valid place_id's with this name? I'm trying to
> make
> > > my
> > > > > user
> > > > > > > > > > > > interface as user-friendly as possible, and asking
> for
> > > > > lat/long for my
> > > > > > > > > > > > userbase won't work. I also want to rely on as few as
> > > API's
> > > > > as
> > > > > > > > > > > > possible, so I'd prefer not to run my name through
> > > Google's
> > > > > Map API
> > > > > > > > > > > > and then through the reverse geocode API on twitters.
> > > Thanks.
> >
> > > > > > > > > > > --
> >
> > > > > > > > > > > Matt Harris
> > > > > > > > > > > Developer Advocate, Twitterhttp://
> > > twitter.com/themattharris
> >
> > > > --
> >
> > > > Matt Harris
> > > > Developer Advocate, Twitterhttp://twitter.com/themattharris
>



-- 


Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris

Reply via email to