#indiewebcamp 2012-03-29

2012-03-29 UTC
spinnerin_, spinnerin, brennannovak, davida_ and davida joined the channel
#
aaronpk
indieauth success!!!
#
aaronpk
"Congrats! You've signed in as aaronparecki.com."
tantek joined the channel
#
aaronpk
tantek: just got the basis of IndieAuth working!!
#
tantek
WOOT!
#
Loqi
giggles
#
tantek
some sort of relmeauth verification service? or just the rel-me part?
#
aaronpk
so far it does the relmeauth verification, the next step is to store the session somewhere and hand off a token to the site that requested the login
#
aaronpk
indieauth.com does the relmeauth verification, does the OAuth process, and redirects the user back to:
#
tantek
does that require that the calling application divulge it's OAuth secret to to indieauth.com though?
#
aaronpk
nope, it'll be handled by an IndieAuth app for each service
#
tantek
seems like a bit of a chokepoint vulnerability
#
aaronpk
then you can use the token to ping indieauth.com/verify?token=XXXXXX and if it's known, you'll get back the domain name of the user
#
aaronpk
so basically it's a way for example.com to verify the identity of any user by their domain name without having to write any oauth code. obviously example.com wouldn't have any authorization to do anything with the user's accounts (can't read tweets, whatever), which is probably a good thing anyway
#
aaronpk
it's just the identity/authentication part of the picture, not the authorization. it seems like a reasonable replacement for OpenID
#
aaronpk
the other nice thing is that anyone can run this indieauth service on their own systems and put in their own app credentials if they wanted. I'll just have one version of it running on indieauth.com for people who don't want to go to the trouble of setting it up themselves!
#
aaronpk
alright that's all for tonight, see you tomorrow!
#
tantek
ah ok - for auth-only this is a good bootstrap
#
tantek
I guess the key I found is the ability upgrade permissions to read or readwrite
#
tantek
but that's only for Falcon like syndication access
#
tantek
perhaps for web-sign-in, an auth-only service is sufficient!
danbri, tilgovi, josephboyle, barnabywalters and josephboyle1 joined the channel
#
Loqi
[http://twitter.com/BarnabyWalters] Your identity, chopped up or cloned: You Decide #indieweb #fsn http://t.co/eNFtEGBM
josephboyle1, paulbooker, josephboyle, voxpelli, tantek, barnabywalters, davida, davida_, tilgovi and deusx joined the channel
#
barnabywalters
can someone do me a big favour and reply to any one of my tweets that links back to my website? I'm trying to test twitter related_results as a way of pulling feedback to my website, but it doesn't register with my own replies.
#
@BarnabyWalters
ATOM implied Activitystream added and submitted to technorati. Starting to feel more like an #indieweb site now! http://t.co/AzOLmtEJ
#
aaronpk
there ya go
#
barnabywalters
brilliant, thanks
#
barnabywalters
question is, did it work? related results is… unreliable to say the least
#
aaronpk
i'm not familiar with related_results
#
barnabywalters
it's not documented
#
barnabywalters
but it exists
#
aaronpk
ah "Unfortunately we're unable to offer support for undocumented endpoints. I would urge you not to depend on these since they're likely to change suddenly, and without warning."
#
barnabywalters
works on and off, doesn't seem to have worked this time :(
#
aaronpk
that would be nice if it was officially supported
#
Loqi
[http://twitter.com/aaronpk] @BarnabyWalters Yeah!! Go #indieweb!
#
barnabywalters
problem is I can't find a supported method of easily getting all replies/related activity for a tweet
#
barnabywalters
seems like a no-brainer really
#
aaronpk
trying to use twitter as a comment system?
#
barnabywalters
I think Tantek calls it reverse syndication
#
aaronpk
ah yea
#
barnabywalters
I call it backfeedback
#
aaronpk
or backfeed?
#
barnabywalters
either one works :)
#
mkowens
To my knowledge, Twitter does not support threading easily. You may want to check with Mark Jardine from Tweetbot. They've got a function that checks for all replies to a message.
#
barnabywalters
cheers, I'll look him up
#
barnabywalters
I wonder how twitter do it
#
mkowens
It is hit or miss, though, so I'm guessing it relies on "tweets Tweetbot has seen" or something like that in order to correlate in_reply_to fields on the API.
#
aaronpk
open up firebug and look :)
#
mkowens
They have the firehose.
josephboyle joined the channel
#
mkowens
They use the in_reply_to fields on the API to aggregate all known tweets with the correct in_reply_to field values.
#
barnabywalters
we can see what API calls twitter are making on the client side?! that's news to me
#
aaronpk
interesting, twitter doesn't even show my reply on your tweet here https://twitter.com/#!/BarnabyWalters/status/184028360886845440
#
@BarnabyWalters
ATOM implied Activitystream added and submitted to technorati. Starting to feel more like an #indieweb site now! http://t.co/AzOLmtEJ
#
barnabywalters
yes, I'm beginning to think it merely takes some time. Or is broken for some reason
#
aaronpk
barnabywalters: their new site is almost a third-party client
#
aaronpk
here's one ajax call that returned this for your tweet: {"favoriters":[],"favoriters_count":"0","repliers":[507922769,14447132],"repliers_count":"2","retweeters_count":"0","retweeters":[]}
#
mkowens
They're using the statuses/firehose endpoint that isn't able to be accessed by third parties without special permissions.
#
barnabywalters
so the repliers will be me and you. I assume it *could* be done by searching the streams of 'repliers' for tweets in reply to the original id, but my code is a complicated enough mess of conditionals as it is :(
#
barnabywalters
cheers, I'll have a read
#
aaronpk
mkowens: you know how when you're looking at a single tweet on the web view and it shows people who have replied to teh tweet? that's what he's talking about
#
mkowens
Yes, and the statuses/firehose is how they're accessing the in_reply_to aggregation.
#
mkowens
"Creative use of a combination of other resources and various access levels can satisfy nearly every application use case."
#
mkowens
:-)
#
mkowens
It's Twitter's way of saying, "We have magic you don't."
#
barnabywalters
;) so not something I can do easily with the REST API
#
aaronpk
isn't the firehose for streaming stuff tho? i'm talking about pulling up an older tweet and it showing the context
#
@timoreilly
Business as usual: at behest of corporate masters, Congress aims to punish FCC for daring to stand up to ATT http://t.co/7rJAwVCu
#
mkowens
As far as I know, the Streaming API can access any tweet just like the REST API can.
#
aaronpk
yea twitter's website is definitely using related_results
#
mkowens
See. "Magic."
#
barnabywalters
thing is, I've found it to be unreliable. I've never had any more than two tweets in the result array, even if there were more in the thread
#
aaronpk
yea that doesn't surprise m
#
aaronpk
I think it's actually a difficult problem at scale
#
barnabywalters
yes, I suppose so
#
mkowens
Oh, you have to traverse the related_results yourself sometimes, check their related_results and then merge them together.
#
mkowens
They state in their QoS statement that your client may have to handle "duplicate statuses, non-status messages, and <something else I can't remember"
#
mkowens
So I think some of that sort of processing is implied.
#
mkowens
It's certainly not as easy as it could be.
#
barnabywalters
do you know if each reply references the original (e.g. first in thread) tweet or just the previous one?
#
aaronpk
probably just the previous. just guessing.
#
mkowens
There's no "thread." Anything that is a direct reply to another tweet should reference the tweet it directly replied to.
#
barnabywalters
so when a twitter client displays a 'thread' of tweets they're recursively calling related_results (or going up the in_reply_to_id ladder)
#
mkowens
Correct.
#
mkowens
And they miss "multiple replies" in the thread, too, usually as a result.
#
barnabywalters
okay. I may postpone this feature in favour of things which will not be quite so complicated :)
#
mkowens
For example, if I reply to "Tweet A" twice, creating "Tweet B" and "Tweet C", and then someone replies to "Tweet C" with "Tweet D" which you then see, the "reply chain" to "Tweet D" is A<-C<-D, and A<-B is a separate reply chain.
#
barnabywalters
sounds about right
#
mkowens
Whereas, if you were "threading" in the sense of a traditional comment thread system you would have A at the top level, B and C at the next level, and D below C on the next level.
#
barnabywalters
if it was a 2D comment thread, yep. I understand
#
barnabywalters
An interesting point: if you change include_entities to 0, you get a different structure of results https://api.twitter.com/1/related_results/show/185416199893561347.json?include_entities=0
#
barnabywalters
with things like ConverstaionRole: fork
#
barnabywalters
and 'score' (not sure of purpose)
#
mkowens
So, that's an Annotated tweet.
#
mkowens
Annotations is only available to a small subset of individuals.
#
mkowens
ConversationRole: fork, score:1.0, and kind:tweet are annotations.
#
barnabywalters
okay — can't find docs about them, what do they do?
#
mkowens
Annotations are an unreleased system of attaching custom, arbitrary structured data to tweets.
#
mkowens
They decided to not release them to the public, but a small handful of developer accounts still have access to them (including myself, I believe).
#
mkowens
Anyone who attended the annotations hackfest in 2010, I think, has access to them still.
#
barnabywalters
by 'access' you mean write access? seems like read access is public
#
mkowens
Creating them, that is. Reading them anyone can do with the undocumented annotations API.
#
mkowens
Yarr.
#
barnabywalters
beat me to it :)
#
barnabywalters
was it decided that they weren't useful, then?
#
mkowens
No
#
mkowens
I think we identified too many problems with them during the hackfest.
#
mkowens
lol
#
barnabywalters
they killed themselves at birth, then!
#
mkowens
Just to clarify: they never said why they didn't release them publicly. I'm definitely making an assumption in that regard. It's possible they didn't like the implications of how the annotations system could have changed the ecosystem.
#
barnabywalters
okay. so still in the pipeline but unlikely to be released
#
mkowens
Maybe?
#
mkowens
Either way, the code is all still there and if you have access to annotations, your apps can use them, which whatever app created this appears to be able to do (unless Twitter is themselves adding this data).
#
barnabywalters
well, it's interesting but I can't see it solving my problem. I think my best bet is to create some kind of uber-function that traverses up and down related_results and in_reply_to threads to get all related results
#
mkowens
Actually, it looks like only "ConversationRole" is an annotation. The others are showing up outside of the annotations section.
#
barnabywalters
or wait for twitter to provide a better endpoint
#
mkowens
So I'm not sure what "score" is.
#
barnabywalters
I've only ever seen a 'score' of 1, so I doubt it's actively being used
#
mkowens
Probably some sort of fraud/spam scoring system that they were tinkering with.
#
barnabywalters
I was just trying to find a spam tweet to test it with but I haven't been spammed lately
#
mkowens
Oh, now that's interesting. It appears that it *is* Twitter using those Annotations values.
#
mkowens
I just checked multiple different tweets within a single conversation.
#
barnabywalters
I can't see annotations on anything other than related_results with include_entities=0
#
mkowens
Oh. I can.
#
barnabywalters
is it a matter of adding a query string?
#
mkowens
(my account has access to Annotations though, which would make sense why I can see them)
#
mkowens
Meeting time. Be back later.
#
barnabywalters
bye for the mo
#
barnabywalters
thanks for the help
josephboyle1 and josephboyle joined the channel