Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on Facebook (mainly on the Graph API)
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/facebook.e>
#           or at <http://angg.twu.net/e/facebook.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.download-video»	(to "download-video")
# «.facebook-api»	(to "facebook-api")
# «.fb-page-id»		(to "fb-page-id")
# «.fb-user-id»		(to "fb-user-id")
# «.fb-group-id»	(to "fb-group-id")
# «.list-my-groups-1»	(to "list-my-groups-1")
# «.me-metadata-1»	(to "me-metadata-1")
# «.good-fbkinds»	(to "good-fbkinds")
#  «.eventnpn»		(to "eventnpn")
#  «.eventnn»		(to "eventnn")
#  «.eventn»		(to "eventn")
#  «.groupnpn»		(to "groupnpn")
#  «.groupwpn»		(to "groupwpn")
#  «.groupnn»		(to "groupnn")
#  «.groupwn»		(to "groupwn")
#  «.groupn»		(to "groupn")
#  «.groupw»		(to "groupw")
#  «.mediawannn»	(to "mediawannn")
#  «.mediawnnn»		(to "mediawnnn")
#  «.mediawn»		(to "mediawn")
#  «.noteswwn»		(to "noteswwn")
#  «.notesn»		(to "notesn")
#  «.pageswn»		(to "pageswn")
#  «.storynn»		(to "storynn")
#  «.photonn»		(to "photonn")
#  «.photonnnn»		(to "photonnnn")
#  «.photono»		(to "photono")
#  «.photot»		(to "photot")
#  «.photogm»		(to "photogm")
#  «.photona»		(to "photona")
#  «.photowa»		(to "photowa")
#  «.photovs»		(to "photovs")
#  «.photov»		(to "photov")
#  «.postwn»		(to "postwn")
#  «.videon»		(to "videon")
# «.php»		(to "php")
# «.python»		(to "python")
# «.telnet»		(to "telnet")
# «.http»		(to "http")
# «.explorer»		(to "explorer")
# «.javascript»		(to "javascript")
# «.edrxcache-app»	(to "edrxcache-app")
# «.facepy»		(to "facepy")
# «.get_object»		(to "get_object")
# «.album»		(to "album")
# «.stackoverflow»	(to "stackoverflow")
# «.rss»		(to "rss")
# «.trackers»		(to "trackers")
# «.kill-it-now»	(to "kill-it-now")
# «.rushkoff»		(to "rushkoff")
# «.lpeg-bug»		(to "lpeg-bug")
# «.nassim»		(to "nassim")
# «.download-all-posts-in-group»  (to "download-all-posts-in-group")
# «.user-feed»		(to "user-feed")
# «.onthisday»		(to "onthisday")
# «.apps-and-their-permissions»	(to "apps-and-their-permissions")




#####
#
# download-video
# 2023mar03
#
#####

# «download-video»  (to ".download-video")
replace www by mbasic





#####
#
# The new facebook api
# 2014aug08
#
#####

# «facebook-api» (to ".facebook-api")
# https://developers.facebook.com/docs/applinks/index-api
# https://developers.facebook.com/docs/apps/changelog
# https://developers.facebook.com/docs/facebook-login/
# https://developers.facebook.com/docs/facebook-login/access-tokens
# https://developers.facebook.com/docs/graph-api
# https://developers.facebook.com/docs/graph-api/quickstart/v2.1
# https://developers.facebook.com/docs/graph-api/reference/v2.1/url
# https://developers.facebook.com/docs/graph-api/using-graph-api/v2.1
# https://developers.facebook.com/docs/opengraph/using-objects
# https://developers.facebook.com/tools/explorer ***

https://developers.facebook.com/docs/opengraph/using-objects
https://graph.facebook.com/10150799272451063

2015oct11:
https://developers.facebook.com/blog/post/2015/07/08/graph-api-v2.4/
https://developers.facebook.com/docs/graph-api/reference/
https://developers.facebook.com/docs/graph-api/reference/album
https://developers.facebook.com/docs/graph-api/reference/comment
https://developers.facebook.com/docs/graph-api/reference/event
https://developers.facebook.com/docs/graph-api/reference/friend-list
https://developers.facebook.com/docs/graph-api/reference/friendlist
https://developers.facebook.com/docs/graph-api/reference/group
https://developers.facebook.com/docs/graph-api/reference/groupdoc
https://developers.facebook.com/docs/graph-api/reference/object/comments
https://developers.facebook.com/docs/graph-api/reference/object/sharedposts
https://developers.facebook.com/docs/graph-api/reference/photo
https://developers.facebook.com/docs/graph-api/reference/page
https://developers.facebook.com/docs/graph-api/reference/post
https://developers.facebook.com/docs/graph-api/reference/profile
https://developers.facebook.com/docs/graph-api/reference/status
https://developers.facebook.com/docs/graph-api/reference/thread
https://developers.facebook.com/docs/graph-api/reference/url
https://developers.facebook.com/docs/graph-api/reference/user
https://developers.facebook.com/docs/graph-api/reference/user-context
https://developers.facebook.com/docs/graph-api/reference/video




#####
#
# Getting the id of a Facebook page (trivial)
# 2015oct12
#
#####

# «fb-page-id» (to ".fb-page-id")
# https://developers.facebook.com/docs/graph-api/reference/page
# https://www.facebook.com/CopBlock

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadfbcache2()  -- (find-fbcache "fbcache2.lua")
o = fbcurlparse("CopBlock"); pp(o)
--> { name = "Cop Block", id = "281961363188" }




#####
#
# Getting the id for a Facebook user (solution: wget and grep)
# 2015oct12
#
#####

# «fb-user-id» (to ".fb-user-id")
# https://developers.facebook.com/docs/graph-api/reference/user
# https://www.facebook.com/thadeu.penna
# http://stackoverflow.com/questions/30886468/facebook-cannot-query-users-by-their-username-solution
# http://findmyfbid.com/
# http://www.tekgazet.com/how-do-i-find-my-facebook-id-number/soft/2849.html

# We are writing on behalf of our domain <Findmyfacebookid.com>, which
# has currently transferred to <randomtools.io>

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadfbcache2()  -- (find-fbcache "fbcache2.lua")
o = fbcurlparse("thadeu.penna"); pp(o)
--> { error = { message = "(#803) Cannot query users by their username (thadeu.penna)", ...} }

-- http://findmyfbid.com/
-- https://www.facebook.com/thadeu.penna
o = fbcurlparse("1419700496"); pp(o)
--> { name = "Thadeu Penna", id = "1419700496" }

-- https://www.facebook.com/1419700496 redirects to:
-- https://www.facebook.com/thadeu.penna



* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
wget https://www.facebook.com/thadeu.penna
wget -nc -U $MOZILLA_USER_AGENT https://www.facebook.com/thadeu.penna
# (find-fline "/tmp/thadeu.penna")
cat thadeu.penna | tr ' "' "\n\n" | grep photo.php
cat thadeu.penna | tr ' "' "\n\n" | grep fb://profile/

# (find-fbcache "fbcache2.lua" "user-id")
# (find-fbcache "fbcache2.lua" "user-id-test")






#####
#
# Getting the ID for a group (hard, unsolved)
# 2015oct13
#
#####

# «fb-group-id» (to ".fb-group-id")
# https://developers.facebook.com/docs/graph-api/reference/v2.5/group
# https://developers.facebook.com/docs/graph-api/reference/v2.5/post
# http://stackoverflow.com/questions/8957340/how-do-i-find-my-facebook-group-id
# https://www.facebook.com/help/community/question/?id=540175206014385
# http://stackoverflow.com/questions/14919731/how-to-get-all-posts-of-a-group-via-facebook-graph-api
# http://stackoverflow.com/questions/30859523/get-all-facebook-group-post-using-fb-graph-api
# http://stackoverflow.com/questions/22868139/how-to-get-all-content-posted-by-a-facebook-group-using-graph-api

# I don't have an automated way of getting a group id yet. I am using
# this (closed) group and this post in it for tests and examples:
#   https://www.facebook.com/groups/CronicasDoEstadoDeExcecao
#   https://www.facebook.com/groups/CronicasDoEstadoDeExcecao/permalink/628421860631619/
# Here are the two ways I know of for getting the group id:
#
# 1) Use wallflux.com/facebook_id:
#      http://wallflux.com/facebook_id/  ->
#      https://www.wallflux.com/feed/543333892473750
#
# 2) Open the group page *in the browser, and when I am logged in with
#    my facebook user*. The saved html contains this:
#      fb://group/543333892473750

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadfbcache2()
o = fbcurlparse("543333892473750"); pp(o)
--> {
--    privacy = "CLOSED",
--    name = "Crônicas do estado de exceção",
--    id = "543333892473750"
--  }

-- Equivalent URLs:
-- https://www.facebook.com/groups/CronicasDoEstadoDeExcecao
-- https://www.facebook.com/groups/543333892473750
-- https://www.facebook.com/groups/CronicasDoEstadoDeExcecao/permalink/628421860631619/
-- https://www.facebook.com/groups/543333892473750/permalink/628421860631619/


f = function (id) o = fbcurlparse(id); pp(o) end
f = function (id) o = fbcurlparse(id); pp(o) end
f("206265326100419") -- ForumIndependenteProfessoresFederais
f("591978827583087") -- TransparenteNaoBinaria
f("120731477994736") -- Universidadenomade
f("366281126840335") -- assexuadostambemamam
f("1658574514355739") -- cismiterio
f("162450337121400") -- contatimprovbra
f("127362287317647") -- encontrossutis
f("101644769912671") -- enuds
f("176415242429847") -- gvinte
f("1394594754107124") -- igrejaerisiana
f("265790916954374") -- judithbutler





-- The rest are messy notes on things that I tried to do, and failed,
-- on that group.

o = fbcurlparse("CronicasDoEstadoDeExcecao"); pp(o)
--> "(#803) Some of the aliases you requested do not exist: CronicasDoEstadoDeExcecao"

-- https://www.facebook.com/groups/CronicasDoEstadoDeExcecao/permalink/628421860631619/
-- https://www.facebook.com/photo.php?fbid=916282231772900&set=gm.621209278019544&type=3
o = fbcurlparse("916282231772900"); pp(o)   --> unsupported get request
o = fbcurlparse("621209278019544"); pp(o)   --> no mode specified
o = fbcurlparse("628421860631619"); pp(o)   --> no mode specified


o = fbcurlparse("543333892473750_628421860631619"); pp(o)  --> err
o = fbcurlparse("543333892473750/feed"); pp(o)             --> err

fbwget2("groups/CronicasDoEstadoDeExcecao")
-- (find-fline "/tmp/fb/" "CronicasDoEstadoDeExcecao")
-- (find-fline "/tmp/fb/CronicasDoEstadoDeExcecao")
-- (find-fline "/tmp/fb/CronicasDoEstadoDeExcecao" "543333892473750")
-- file:///tmp/fb/CronicasDoEstadoDeExcecao




#####
#
# An attempt to list my groups with me/groups and paging.next
# 2015oct15
#
#####

# «list-my-groups-1» (to ".list-my-groups-1")
# https://developers.facebook.com/docs/graph-api/using-graph-api/v2.5
# https://developers.facebook.com/docs/graph-api/reference/user/
# https://developers.facebook.com/docs/graph-api/reference/user/groups/
# https://developers.facebook.com/docs/graph-api/reference/v2.5/group

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadfbcache2()
og = { fbcurlparse("me/groups") }
while true do
  o    = og[#og]
  next = o.paging.next
  pp(o.data)
  if next
  then table.insert(og, fbcurl0parse(next))
  else break
  end
end

= #og
for i=1,#og do print(#og[i].data) end
for i=1,#og do pp(og[i].data) end

-- Why only 7 groups?
-- Here are their ids:

f = function (id) o = fbcurlparse(id); pp(o) end
f("393636287458328") -- Ecossol e Tribo (secret)
f("535050606577879") -- GA PURO 2013.2 (open)
f("672137799470276") -- Espaço físico PURO (open)
f("135562746646001") -- Linux Rio das Ostras (open)
f("476283599102008") -- Horta do Anfiteatro (open)
f("177303619016282") -- Ensaios para Véu e Uivos (open)
f("233580036659959") -- Chapa 1 PURO (open)

-- Here is a way to convert the group ID to a URL:
-- https://www.facebook.com/groups/177303619016282/

-- The 7 groups above are only the ones I "manage". Full listing:
-- https://www.facebook.com/groups/?category=membership

-- Espaço físico PURO
-- https://www.facebook.com/groups/672137799470276/




#####
#
# Using "me?metadata=1"
# 2015oct15
#
#####

# «me-metadata-1» (to ".me-metadata-1")
# https://developers.facebook.com/docs/graph-api/using-graph-api/v2.5

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadfbcache2()
o = fbcurlparse("me?metadata=1")
pp(o)
pp(o.metadata.connections)
pp(table.concat(sorted(keys(o.metadata.connections)), "\n"))




#####
#
# good fbkinds: all the kinds of Facebook URLs that I know how to convert
# 2015nov20
#
#####

# «good-fbkinds» (to ".good-fbkinds")
# (find-fbcache "fbcache2.lua" "fbkinds")
# (find-fbcache "fbcache2.lua" "fbkinds-tests")

# (setq last-kbd-macro (kbd "C-a # SPC (find-fbcurl SPC \" C-e \") C-a <down>"))


# «eventnpn» (to ".eventnpn")
# (find-fburlsofkind "eventnpn")
# (find-fbcache "fbcache2.lua" "fbkinds" "eventnpn" "/events/N/permalink/N/R")
# Example: https://www.facebook.com/events/1397247553878845/permalink/1412951502308450/
# Text of the event: (find-fbcurl "1397247553878845")
# Text of the post:  (find-fbcurl "1412951502308450")
#             also:  (find-fbcurl "1397247553878845_1412951502308450")

# «eventnn» (to ".eventnn")
# (find-fburlsofkind "eventnn")
# (find-fbcache "fbcache2.lua" "fbkinds" "eventnn" "/events/N/N/R")
# Example: https://www.facebook.com/events/1553809231523002/1563468630557062/
# Text of the event: (find-fbcurl "1553809231523002")
# Text of the post:  (find-fbcurl "1563468630557062")
#             also:  (find-fbcurl "1553809231523002_1563468630557062")

# «eventn» (to ".eventn")
# (find-fburlsofkind "eventn")
# (find-fbcache "fbcache2.lua" "fbkinds" "eventn" "/events/N/R")
# Example: https://www.facebook.com/events/1006218776073768/
# Text of the event: (find-fbcurl "1006218776073768")





# «groupnpn» (to ".groupnpn")
# (find-fburlsofkind "groupnpn")
# (find-fbcache "fbcache2.lua" "fbkinds" "groupnpn" "/groups/N/permalink/N/R")
# Example: https://www.facebook.com/groups/249360678448319/permalink/621939097857140/
# Group:             (find-fbcurl "249360678448319" "Ocupa Rio - Grupo de Discussão")
# Post (incomplete): (find-fbcurl "621939097857140")
#              also: (find-fbcurl "249360678448319_621939097857140")

# «groupwpn» (to ".groupwpn")
# (find-fburlsofkind "groupwpn")
# (find-fbcache "fbcache2.lua" "fbkinds" "groupwpn" "/groups/W/permalink/N/R")
# Example: https://www.facebook.com/groups/contatimprovbra/permalink/947586865274406/
# Group id:         (find-fbcurl "162450337121400" "Contatimprov Brasil")
# Text of the post: (find-fbcurl "947586865274406")
#             also: (find-fbcurl "162450337121400_947586865274406")

# «groupnn» (to ".groupnn")
# (find-fburlsofkind "groupnn")
# (find-fbcache "fbcache2.lua" "fbkinds" "groupnn" "/groups/N/NR")
# Example: https://www.facebook.com/groups/105487286280461/240851649410690/
# Group: (find-fbcurl "105487286280461" "Alunos do Prof. Reginaldo Demarque")
# Post:  (find-fbcurl "240851649410690")
# also:  (find-fbcurl "105487286280461_240851649410690")

# «groupwn» (to ".groupwn")
# (find-fburlsofkind "groupwn")
# (find-fbcache "fbcache2.lua" "fbkinds" "groupwn" "/groups/W/NR")
# Example: https://www.facebook.com/groups/transgente/639092892836474/
# Group: (find-fbcurl "487680691311029" "TRANSGENTE")
# Post:  (find-fbcurl "639092892836474")
# also:  (find-fbcurl "487680691311029_639092892836474")

# «groupn» (to ".groupn")
# (find-fburlsofkind "groupn")
# (find-fbcache "fbcache2.lua" "fbkinds" "groupn" "/groups/NR")
# Example: https://www.facebook.com/groups/1398505100440487/
# Group:   (find-fbcurl "1398505100440487")

# «groupw» (to ".groupw")
# (find-fburlsofkind "groupw")
# (find-fbcache "fbcache2.lua" "fbkinds" "groupw" "/groups/WR")
# Example: https://www.facebook.com/groups/transgente
# Group: (find-fbcurl "487680691311029" "TRANSGENTE")





# «mediawannn» (to ".mediawannn")
# (find-fburlsofkind "mediawannn")
# (find-fbcache "fbcache2.lua" "fbkinds" "mediawannn" "/W/media_set?set=a.N.N.NR")
# Example: https://www.facebook.com/paulakossatz/media_set?set=a.10202222226170686.1073741844.1040842293&type=1
# User: (find-fbcurl "1040842293")
# *** I don't know how to get the album ID

# «mediawnnn» (to ".mediawnnn")
# (find-fburlsofkind "mediawnnn")
# (find-fbcache "fbcache2.lua" "fbkinds" "mediawnnn" "/media/set/?set=W.N.N.NR")
# *** I don't have urls of this kind

# «mediawn» (to ".mediawn")
# (find-fburlsofkind "mediawn")
# (find-fbcache "fbcache2.lua" "fbkinds" "mediawn" "/media/set/?set=W.NR")
# *** I don't have urls of this kind

# «noteswwn» (to ".noteswwn")
# (find-fburlsofkind "noteswwn")
# (find-fbcache "fbcache2.lua" "fbkinds" "noteswwn" "/notes/W/W/NR")
# *** I don't have urls of this kind

# «notesn» (to ".notesn")
# (find-fburlsofkind "notesn")
# (find-fbcache "fbcache2.lua" "fbkinds" "notesn" "/notes/N/R")
# https://www.facebook.com/notes/320469381448610/
# (find-fbcurl "320469381448610")
# *** "(#12) notes API is deprecated for versions v2.0 and higher"

# «pageswn» (to ".pageswn")
# (find-fburlsofkind "pageswn")
# (find-fbcache "fbcache2.lua" "fbkinds" "pageswn" "/pages/W/NR")
# Example:      https://www.facebook.com/pages/Viomundo/109725279084911
# Redirects to: https://www.facebook.com/Viomundo-109725279084911/
# Page: (find-fbcurl "109725279084911")

# «storynn» (to ".storynn")
# (find-fburlsofkind "storynn")
# (find-fbcache "fbcache2.lua" "fbkinds" "storynn" "/permalink.php?story_fbid=N&id=NR")
# https://www.facebook.com/permalink.php?story_fbid=10152640860900894&id=696685893&fref=nf
# Deprecated: (find-fbcurl "10152640860900894")
# User: (find-fbcurl "696685893")
# *** "(#12) singular statuses API is deprecated for versions v2.4 and higher"

# «photonn» (to ".photonn")
# (find-fburlsofkind "photonn")
# (find-fbcache "fbcache2.lua" "fbkinds" "photonn" "/photo.php?fbid=N&set=t.NR")
# https://www.facebook.com/photo.php?fbid=10151256245188625&set=t.100002233344951
# (find-fbcurl "10151256245188625")
# User: (find-fbcurl "100002233344951")
# *** I don't know how to retrieve the photo

# «photonnnn» (to ".photonnnn")
# (find-fburlsofkind "photonnnn")
# (find-fbcache "fbcache2.lua" "fbkinds" "photonnnn" "/photo.php?fbid=N&set=a.N.N.NR")
# Example: https://www.facebook.com/photo.php?fbid=10201336092313990&set=a.1569106477271.73917.1523735650&type=1&permPage=1
# User:  (find-fbcurl "1523735650")
# Photo: (find-fbcurl "10201336092313990")
# More:  (find-fbcurl "10201336092313990/comments")

# «photono» (to ".photono")
# (find-fburlsofkind "photono")
# (find-fbcache "fbcache2.lua" "fbkinds" "photono" "/photo.php?fbid=N&set=OR")
# *** I don't have urls of this kind

# «photot» (to ".photot")
# (find-fburlsofkind "photot")
# (find-fbcache "fbcache2.lua" "fbkinds" "photot" "/N/photos/t.N/N/R")
# Example: https://www.facebook.com/102015223300293/photos/t.100000842030889/317158085119338/
# Community:   (find-fbcurl "102015223300293")
# With (user): (find-fbcurl "100000842030889")
# Photo:       (find-fbcurl "317158085119338")
#              (find-fbcurl "317158085119338/likes")

# «photogm» (to ".photogm")
# (find-fburlsofkind "photogm")
# (find-fbcache "fbcache2.lua" "fbkinds" "photogm" "/N/photos/gm.N/N/R")
# Example: https://www.facebook.com/1442002182737691/photos/gm.1466213243643988/1471817019756207/?type=1
# Community: (find-fbcurl "1442002182737691")
# Event:     (find-fbcurl "1466213243643988")
# Photo:     (find-fbcurl "1471817019756207")

# «photona» (to ".photona")
# (find-fburlsofkind "photona")
# (find-fbcache "fbcache2.lua" "fbkinds" "photona" "/N/photos/a.N.N.N/N/R")
# Example: https://www.facebook.com/21038112178/photos/a.441569537178.245171.21038112178/10152790891782179/?type=1&fref=nf
# Place (college): (find-fbcurl "21038112178")
# Album:           (find-fbcurl "441569537178")
# Photo:           (find-fbcurl "10152790891782179")

# «photowa» (to ".photowa")
# (find-fburlsofkind "photowa")
# (find-fbcache "fbcache2.lua" "fbkinds" "photowa" "/W/photos/a.N.N.N/N/R")
# Example: https://www.facebook.com/AKPress/photos/a.215376115248.261941.205965845248/10154741098510249/?type=1
# Album:           (find-fbcurl "215376115248")
# Page (AK Press): (find-fbcurl "205965845248")
# Photo:           (find-fbcurl "10154741098510249")

# «photovs» (to ".photovs")
# (find-fburlsofkind "photovs")
# (find-fbcache "fbcache2.lua" "fbkinds" "photovs" "/photo.php?v=N&set=OR")
# *** I don't have urls of this kind

# «photov» (to ".photov")
# (find-fburlsofkind "photov")
# (find-fbcache "fbcache2.lua" "fbkinds" "photov" "/photo.php?v=NR")
# Example: https://www.facebook.com/photo.php?v=10152413352959175
# Video: (find-fbcurl "10152413352959175")

# «postwn» (to ".postwn")
# (find-fburlsofkind "postwn")
# (find-fbcache "fbcache2.lua" "fbkinds" "postwn" "/W/posts/NR")
# Example: https://www.facebook.com/CopBlock/posts/10152706679833189
# CopBlock id: (find-fbcurl "281961363188")
# Post:        (find-fbcurl "281961363188_10152706679833189")

# «videon» (to ".videon")
# (find-fburlsofkind "videon")
# (find-fbcache "fbcache2.lua" "fbkinds" "videon" "/video.php?v=NR")
# Example: https://www.facebook.com/video.php?v=823660551012161
# Video: (find-fbcurl "823660551012161")



# (find-fbcache "fbcache2.lua" "fbkinds")

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadfbcache2()
for fbk,url in allfbksk("eventnpn") do print(url) end



allfbks = function () return fbkinds_in_file("~/fbcache/all-fb-urls.lst") end
for fbk,url in allfbks() do
  if fbk.kind == "eventnpn" then print(url) end
end

for fbk in allfbks() do
  if fbk.kind:match("^group") then print(fbk[1]) end
end

for fbk,url in allfbks() do
  if fbk.kind == "eventnpn" then PP(fbk) end
end
for fbk,url in allfbks() do
  if fbk.kind == "eventnpn" then print(url) end
end

fbcurlparse



* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "fbcache2.lua"






#####
#
# The Facebook SDKs for PHP and Python
# 2014aug18 / 2014aug25
#
#####

# «php» (to ".php")
# «python» (to ".python")
# Moved to: (find-es "php" "facebook-sdk")
# Moved to: (find-es "python" "facebook-sdk")




#####
#
# The HTTP API
# 2014aug16
#
#####

# «telnet» (to ".telnet")
# «http» (to ".http")
# https://developers.facebook.com/docs/graph-api/quickstart/v2.2
# http://graph.facebook.com/facebook/picture?redirect=false

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
telnet graph.facebook.com 80
GET /facebook/picture?redirect=false HTTP/1.1

GET graph.facebook.com/facebook/picture?redirect=false

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
telnet graph.facebook.com 80
GET /v2.1/me?fields=id,name HTTP/1.1

token = "CAACEdEose0cBACC52cYZACEBhaZB5ADoYkdoUO0O4fPGJkUfdF1CePpMaZCjTlx7Np7PWpCPbjkEBQeNVLG17N6j85spMPAKbsInxb9wa5nKIVcjeoE45vWKxyU7xvVDKAWsJKegwh6wPUw9z3tHTa5Co8B9BZBILg7kG0Dp2ASmFtFj5ylsJHFzbp5O8hpQDxuMHYRRSTvl93T5zXZCmpZA4tqZBVKpswZD"

&access_token=blau or
?access_token=blau



#####
#
# The Graph API explorer
# 2014aug16
#
#####

# «explorer» (to ".explorer")
# https://developers.facebook.com/tools/explorer ***
/v2.1/
me?fields=id,name
?id=https://www.facebook.com/vera.rodrigues.944023/posts/605622119554057
https://graph.facebook.com/754664537913868






#####
#
# The Facebook SDK for JavaScript
# 2014aug16
#
#####

# «javascript» (to ".javascript")
# https://developers.facebook.com/docs/javascript
# https://developers.facebook.com/docs/javascript/quickstart
# https://developers.facebook.com/docs/javascript/reference
# https://developers.facebook.com/docs/reference/javascript/
# https://developers.facebook.com/tools/javascript-console/
# https://developers.facebook.com/docs/reference/plugins/like
# http://connect.facebook.net/en_US/sdk/debug.js




#####
#
# The EdrxCache app
# 2014aug21
#
#####

# «edrxcache-app» (to ".edrxcache-app")
# https://developers.facebook.com/apps/576144309174951/dashboard/
# App Name   EdrxCache
# App Id     576144309174951
# App Secret ???
# (find-fline "~/ORG/index.org" "EdrxCache")

# https://developers.facebook.com/apps/

# http://stackoverflow.com/questions/6173303/is-it-possible-to-access-users-wall-info-without-passing-his-her-access-token
# http://stackoverflow.com/questions/1059640/facebook-offline-access-step-by-step?lq=1
# (find-fbcmdfile "fbcmd.php" "offline_access")

http://wishtemple.meteor.com/




#####
#
# facepy
# 2014sep06
#
#####

# «facepy» (to ".facepy")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rfv ~/usrc/facepy/
cd      ~/usrc
git clone --depth 1 https://github.com/jgorset/facepy

cd      ~/usrc/facepy/
git pull

# (code-c-d "facepy" "~/usrc/facepy/")
# (find-facepyfile "")
# (find-gitk "~/usrc/facepy/")

sudo pip install -v facepy

* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
# (find-facepyfile "")
# (find-facepyfile "README.rst")
from facepy import GraphAPI
print token
graph = GraphAPI(token)
o = graph.get('me/posts')
type(o)

def pk (o):
  for k in o.iterkeys(): print k

pk(o)
pk(o['data'][1])
pp(o['data'][1])

pp(o['paging'])

def fb_get_from_id (id):
  return graph.get("/v2.1/%s" % (id))

pp(fb_get_from_id("10205246891281520"))


file:///usr/share/doc/python2.7/html/library/stdtypes.html#index-31 (dict)

https://www.facebook.com/eduardo.ochs/posts/10205246891281520

pprint.pformat(o)


# (find-facepyfile "facepy/graph_api.py" "def get(")
# (find-faceutilsfile "quick.esc")





* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
import facebook
graph = facebook.GraphAPI(token)
profile = graph.get_object("me")
# (setq line-move-visual nil)
print(profile)
o = graph.get_object("107972689230862")
o[:1024]
type(o)

import pprint
def pp(o):
  pprint.pprint(o)
def po(o):
  pp(graph.get_object(o))
def ggo(o):
  return graph.get_object(o)

po("me")
po("me/friendlists")
po("117449854938676")     # Needles side tattoo
po("10204211133108213")   # Me
po("10201720471403227")   # Fluminense Federal University




* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
# https://developers.facebook.com/docs/graph-api/reference/v2.1/user
# https://developers.facebook.com/docs/graph-api/reference/user/albums/
po("me/albums")
po("10201617919679498")   # Album: casa
o = ggo("me/albums")
pp(o["data"])
pp(type(o["data"]))
pp(o["data"][1])
pp(o["data"][1]["description"])
pp(o["data"][1]["name"])
print(o["data"][1]["link"])

pp(o["data"][0]["name"])
pp(o["data"][0]["description"])

for oo in o["data"]:
  print
  # pp(oo)
  pp(oo["name"])
  print(oo["id"])
  print(oo["link"])


  # pp(oo["description"])
  pp(oo["name"])


ggo("me/albums")["paging"]
pp(ggo("me/albums")["data"])
pp(ggo("me/albums")["data"][1])
pp(ggo("me/albums")["data"][1]["description"])
O = 92

po("816409655078710")
pp(ggo("816409655078710")["name"])


# https://developers.facebook.com/docs/graph-api/reference/user/groups/
po("me/groups")
po("me/books")

po("me/status")

# https://developers.facebook.com/docs/graph-api/reference/v2.1/post

# https://developers.facebook.com/docs/graph-api/reference/v2.1
po("feed")

po("487608268040099")
po("102013360923139910")

pp(o)


ggo("me")

o = ggo("me")
pp(o)
o["username"]


ggo("me")["username"]

pprint.pprint(o)


post = graph.get_object("487608268040099")
post = graph.get_object("/487608268040099")
post = graph.get_object("v2.1/487608268040099")
post = graph.get_object("/v2.1/487608268040099")
post = graph.get_object("/v2.1/102013360923139910")
post['namee']
print post['message'].encode('utf-8')

post['comments']['data'][0]['from']
post['comments']['data'][0]['message']
post['comments']['data'][1]
quit()


python get_txt  "token access " "https://www.facebook.com/iury.gomes.figueiredo/posts/352826564875907"



#####
#
# get_object (Iury's way of dealing with fb urls)
# 2014sep06
#
#####

# «get_object» (to ".get_object")

* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
from faceutils import *
graph = facebook.GraphAPI(token)
url = "https://www.facebook.com/vera.rodrigues.944023/posts/605622119554057"
url = "https://www.facebook.com/ortelladopablo/posts/754607624604813"
url = "https://www.facebook.com/jean.wyllys/photos/a.201340996580582.48122.163566147024734/715780751803268/"
o = get_object(graph, url)
pp(o)
po("605622119554057")   # Unsupported get request
po("754607624604813")   # Unsupported get request
po("201340996580582")   # album (Jean Wyllys)
po("163566147024734")   # https://www.facebook.com/jean.wyllys
po("715780751803268")   # the photo itself

url = "https://www.facebook.com/jean.wyllys"
o = graph.get_object(url)
o['id']                 # u'163566147024734'

url = "https://www.facebook.com/vera.rodrigues.944023/posts/632792706836998"
o = graph.get_object(url)
o['id']                 # u'566337536805038'
po(o["id"])

url = "https://www.facebook.com/vera.rodrigues.944023/posts/632792706836998"
o = graph.get_object(url)
o['id']                 # u'566337536805038'
po(o["id"])

url = "http://angg.twu.net/linkdasruas.html"
o = graph.get_object(url)
o['id']
po(o["id"])             # 105 shares

# (find-faceutilsfile "")
# (find-faceutilsfile "faceutils.py")
# (find-faceutilsfile "faceutils.py" "def get_object(")


* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/usrc/faceutils-code/
python get_txt -t foo -u https://www.facebook.com/FIPRJ/posts/487608268040090
python get_txt -u https://www.facebook.com/617121238319221/photos/a.617156974982314.1073741828.617121238319221/791252907572719/





#####
#
# Albums
# 2014oct25
#
#####

# «album» (to ".album")
# https://developers.facebook.com/docs/graph-api/reference/v2.1/album
# (find-angg "fbcache/p.py")
# (find-fline "~/fbcache/urls-by-kind.txt")
# (find-fline "~/fbcache/urls-by-kind.txt" "/alexsander.lepletier/")
# https://www.facebook.com/alexsander.lepletier/media_set?set=a.10151933894649198.1073741851.531549197&type=3

* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
# (find-angg ".pythonrc.py")

# https://www.facebook.com/events/1397247553878845/permalink/1412951502308450/
pfi("1397247553878845")
pfi("1412951502308450")
pfi("")

https://www.facebook.com/profile.php?id=

# http://stackoverflow.com/questions/26677571/retrieving-photo-likes-through-facebooks-graph-api
# https://graph.facebook.com/328548953909061/albums?fields=count,id,name,cover_photo,type,photos
# http://stackoverflow.com/questions/25299116/why-does-facebook-graph-api-return-error-on-some-photos?rq=1
# http://stackoverflow.com/questions/5926790/why-do-i-get-this-error-when-i-try-to-access-a-certain-type-of-object-via-the-fa?rq=1
# https://developers.facebook.com/bugs/1569724479914127/
# https://developers.facebook.com/bugs/1558407907724578/





#####
#
# StackOverflow
# 2014oct31
#
#####

# «stackoverflow» (to ".stackoverflow")
# http://stackoverflow.com/questions/26685170/fetching-facebook-api-objects-from-their-public-url
# http://stackoverflow.com/questions/tagged/facebook-graph-api
# http://stackoverflow.com/questions/tagged/facebook-graph-api?sort=newest&pagesize=50





#####
#
# Facebook RSS aggregator
# 2014dec07
#
#####

# «rss» (to ".rss")
# http://www.google.com/search?q=Facebook+RSS+aggregator
# http://www.wprssaggregator.com/docs/facebook-page-feeds/
# http://www.google.com/search?q=php+facebook+rss
# https://gist.github.com/banago/3864515 fb-parse-feed-curl.php
# http://stackoverflow.com/questions/9709016/facebook-killed-public-rss-feeds-how-to-obtain-a-facebook-page-rss-with-the-new ***
# http://ahrengot.com/tutorials/facebook-rss-feed/ ***
# http://fbrss.com/
# http://stackoverflow.com/questions/9714020/how-to-pull-in-facebook-page-posts-as-blog-posts-to-wordpress?lq=1

# https://mail.google.com/mail/ca/u/0/#inbox/14a1cc3fc8ed518d


eh soh colocar o id da pagina no final deste link

http://www.facebook.com/feeds/page.php?format=atom10&id=

vc pode descobrir o id das paginas do FB usando o graph 
  2) algum link pra onde voc½ aprender a usar essas
       coisas,

tem varios links explicando , este eh um deles:

# http://www.green-umbrella.biz/2013/11/add-facebook-page-rss-feed-reader/

# First attempt (failed):
# (find-fbcachefile "all-fb-urls.lst")
# (find-fbcache "huge.txt" "630751537055561")
# http://www.facebook.com/feeds/page.php?format=atom10&id=630751537055561
#
# Second attempt, with a user page (failed):
# http://findmyfacebookid.com/
# https://www.facebook.com/eduardo.sterzi
# http://www.facebook.com/feeds/page.php?format=atom10&id=100003552524446
#
# Third attempt (green umbrella):
# http://www.facebook.com/feeds/page.php?format=atom10&id=168990361234




#####
#
# trackers
# 2015feb28
#
#####

# «trackers» (to ".trackers")
# http://www.businessinsider.com/this-is-how-facebook-is-tracking-your-internet-activity-2012-9?op=1
# http://iuri.tem.blog.br/posts/feissebuqui/ (Seção: Hipocrisia)

Eu sei o que tu está fazendo. Está lendo isto enquanto no teu
navegador, em alguma aba à esquerda, consta www.facebook.com. Por
consequência disto, o javascript daquele site já cadastrou
iuri.tem.blog.br/feissebuqui como parte dos teus interesses, porque o
site fica monitorando tudo o que tu acessa. Não tem nenhuma forma
de apagar isto, está registrado para sempre. Tu acha que tu vai pro
céu por causa disto?




#####
#
# Facebook: kill it now
# 2015mar04
#
#####

# «kill-it-now» (to ".kill-it-now")

http://thread.gmane.org/gmane.culture.media.activism.estudiolivre/15139/focus=18865 edrx
http://thread.gmane.org/gmane.culture.media.activism.estudiolivre/15139/focus=18865 iuri
http://thread.gmane.org/gmane.culture.media.activism.estudiolivre/15139/focus=18916 arlekino

https://mail.google.com/mail/ca/u/0/#search/iuri/14a34d5d4c86f5fd
http://www1.folha.uol.com.br/colunas/luliradfahrer/2015/01/1577199-o-dominio-do-facebookistao.shtml
https://pt-br.facebook.com/pages/Luli-Radfahrer/346866968791847

Gente, tem funcionado pra vocês isso de explicar pras pessoas como
o Facebook é podre e dizer pra elas migrarem pra outras redes? Eu
tentei dar um jeito da gente poder usar o Facebook cada vez menos,
fazendo com o que conteúdo do FB que a gente e os nossos amigos
achamos importante ficasse acessível sem a gente precisar logar no
FB... e essa minha abordagem também não funcionou =(...

Aliás, quando eu quero postar em 2 minutos algum link pros meus
amigos não-techies verem eu ainda tou usando o FB pra isso.

Aliás 2: as outras redes sociais também idiotizam a gente e
fazem a gente achar depois que acorda do transe que perdeu horas? Me
contem, pfavor, porque eu ainda não tentei usar as outras...
aliás tenho usado computador cada vez menos.

  Bjs,
    E.

http://iuri.tem.blog.br/posts/feissebuqui/ ***
https://gnu.io/social
https://gitorious.org/lorea
https://social.hi.ato.br/

http://blog.gmane.org/gmane.culture.media.activism.estudiolivre
http://news.gmane.org/gmane.culture.media.activism.estudiolivre
http://article.gmane.org/gmane.culture.media.activism.estudiolivre
http://suicidemachine.org/#faq
https://en.wikipedia.org/wiki/Echo_chamber_%28media%29
http://iuri.tem.blog.br/posts/pos-masculinismo/#more





#####
#
# Douglas Rushkoff
# 2015apr03
#
#####

# «rushkoff» (to ".rushkoff")
# http://www.youtube.com/watch?v=ib6H8jg-f2w#t=6m30s Douglas Rushkoff: Present Shock: Everything is Now
# http://www.hierophant.com.br/arcano/posts/view/X_Parser/143 "Program or be Programmed", um livro de Douglas Rushkoff
# (find-fline "~/books/" "rushkoff")
# https://lists.riseup.net/www/arc/metareciclagem/2015-04/msg00027.html
# (find-youtubedl-links "/sda5/videos/" "Douglas_Rushkoff_-_Present_Shock_-_Everything_is_Now" "ib6H8jg-f2w" ".mp4" "rushkoff")
# (code-video "rushkoffvideo" "/sda5/videos/Douglas_Rushkoff_-_Present_Shock_-_Everything_is_Now-ib6H8jg-f2w.mp4")
# (code-audio "rushkoffvideo" "/sda5/videos/Douglas_Rushkoff_-_Present_Shock_-_Everything_is_Now-ib6H8jg-f2w.mp4")
# (find-rushkoffvideo)
# (find-rushkoffvideo "0:00")
# (find-rushkoffvideo t)
# (eev-avadj-mode 1)

6:30 ...the way you conversed in an online bulletin board was you
would turn on your computer, you would log, you would plug on this
thing called a modem ... old-school ... you had a modem, you would
dial into a server

6:42 you would download a cconversation, you would disconnect
from the net, then you'd read the conversation in our own time.

6:48 And (there could be someone ..., right) so you would take your
time before you respond,

6:56 you'd take an hour, two hours, or all night, and you would craft
this perfect paragraph, because you would be participating with GREAT
MINDS

7:04 and you wanted to put your best foot forward. Then you would log
back in and you would upload your paragraph or two of response,
perfectly edited, zingers in there, and then you would wait a day or
two to see what people had to say about it. It was like chess by mail.

7:20 An everybody sounded really smart on there, because they did all
that time-shifting and time compression, because they used the net in
an asynchronous, stepped way that the net actually works, it's an
asynchronous technology, it lives outside time, e-mail sits and waits
for you, it's not like a phone that you have to answer in the moment
or that now we have voice-mail,

7:44 so the internet was a place where people sounded smarter than
they do in real life, imagine that... and that's why people like me
looked into the net and thought "wow, this is going to enhance
humanity, this is going to augment what we can do, I can be smarter
there than in real life", because of my time compression. I can
interact with smarter brains than I get to in real life, because I can
connect to the other nodes

8:13 But what would we do, when the technology story moved from a
culture of human enhancements, from the kind of psychedelic, magical,
Mondo 2000 world, to the much more market-driven pages of Wired
magazine? All the suddent the internet was no longer a place that we
were going to expand what it meant to be human, it was a place where
we were going to save the NASDAQ stock exchange, which had been
suffering since the (?)-tech crash in 1987.

8:44 So now these devices, this technology, these applications, had to
somehow find a way to mine us for value - to extract value. We
couldn't go to the countries of little brown people and enslave them
anymore, that colonization thing it stopped, and the expansion of the
economy seem doomed...

9:08 But we found a new territory in human attention - in human time.
So we started to commodify, to mine human time for its value, and the
word that started to describe net development were things like
stickiness, and eyeball hours, and Wired magazine announced that we
were

9:23 living in an attention economy, me might have infinite real
estate online, but there are only so many eyeball hours in a day.

9:32 So the object of the game was to extract those eyeball-hours from
people in terms of their attention. 

9:38 So we end up taking an asynchronous device like the internet, and
turning it into an always-on device like an iPhone, we strapped the
interned to our bodies, and have the internet interrupt us all the
time everytime someone does a facebook update

9:52 or tweet us ... e-mail ... or once our attention ... an app wants
to tell us that something new is going on, and we live in a state of
perpetual emergency interruption, that the only people who endured
that before this was 911 operators, or air traffic controllers - and
they did it for only four hours at a time, and they got drugs for it.

10:18 And along with this...




# https://polytropy.wordpress.com/2015/03/17/the-facebook-algorithm/#more-1483

A tally of Facebook "likes" then is not a vote, any more than a public
opinion poll is a vote. The poll _corrupts_ the vote. It causes the
candidate to try to say what people want to hear, not what the
candidate believes in. Candidates may always have tried to say what
voters want to hear, as we can understand from reading Plato; but the
public opinion poll makes things worse, if only by making it easier
for candidates to _care_ about what people want to hear. One ought
rather to be oneself, and let others take that as they will.




#####
#
# lpeg bug - workarounds
# 2015oct09
#
#####

# «lpeg-bug» (to ".lpeg-bug")
# (find-blogme3grep "grep --color -nH -e huge.txt anggmake.lua")
# (find-blogme3 "anggmake.lua" "anggtranslate")
# (find-blogme3 "anggmake.lua" "anggdonttranslate")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/fbcache/
cp huge.txt-orig huge.txt
touch huge.txt

cp -v ~/TH/L/fbcache/huge.txt.html ~/fbcache/
laf ~/fbcache/
makeL

# (find-twusfile "fbcache/")
# (find-twupfile "fbcache/")




#####
#
# Stanislav Yurin's index of Nassim Nicholas Taleb's posts
# 2015oct09
#
#####

# «nassim» (to ".nassim")
# http://nassim.link/
# https://www.facebook.com/groups/CronicasDoEstadoDeExcecao/permalink/626950160778789/
# https://mail.google.com/mail/ca/u/0/#sent/1504b86b2d404f7c
# Subj: Tecnhical question about nassim.link (or maybe about the Graph API)

Hi Nassim,

after the protests of 2013 in Brazil - which had scenes like these,
<http://www.youtube.com/watch?v=Pap4N7G2rPM> - I started working on
tools for keeping archives of the things that people were posting on
Facebook... I was able to build an archive of videos - 

  http://angg.twu.net/linkdasruas.html

and also something similar for textual posts on Facebook... my
prototype downloaded local copies in JSON of posts from a list of URLs
like this

  http://angg.twu.net/fbcache/all-fb-urls.lst.html

using the Graph API, and then produces an output like this (its a
prototype, remember!):

  http://angg.twu.net/fbcache/huge.txt.html

But I stumbled on a problem that was incredibly frustrating. For some
kinds of Facebook URLs I can extract an ID from them and use the Graph
API to retrieve its contents, but for some other kinds of URLs no
sequence of digits in them works as an ID... there are _some_ details
here:

  http://angg.twu.net/fbcache/fbcache.lua.html#fbkinds

How are you retrieving the contents that are indexed in
<http://nassim.link/>? Are you using the Graph API, the RSS feed, or
what?

  Thanks in advance! =)
  Cheers,
    Eduardo Ochs
    eduardoochs@gmail.com
    http://angg.twu.net/




#####
#
# Download all posts from a group
# 2016jan24
#
#####

# «download-all-posts-in-group» (to ".download-all-posts-in-group")
# https://www.facebook.com/help/community/question/?id=10201290977937615
# https://www.facebook.com/help/community/question/?id=560590287326922
# https://apps.facebook.com/group_feed_printer/
# http://stackoverflow.com/questions/21424935/facebook-graph-api-download-all-posts-for-group-i-have-admin-rights-to




#####
#
# Accessing a user's feed
# 2016jan25
#
#####

# «user-feed» (to ".user-feed")

# (find-google-links "how to download my facebook feed using the graph api")
# http://www.google.com/search?q=how+to+download+my+facebook+feed+using+the+graph+api
# http://www.phpgang.com/how-to-get-your-facebook-feed-with-graph-api-using-php_614.html

# // change "me" to your friend Facebook id
# $graph_url = "https://graph.facebook.com/me/feed?access_token=".$params['access_token'];

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
chdir "~/fbcache/"
dofile "fbmemget.lua"  -- (find-fbcache "fbmemget.lua")
f = function (qry) query = qry; pp(fbmemgetn(query, 1)) end

query = "me/feed"      -- works
n = 2
A =        fbmemgetn(query, n)
B = fbglue(fbmemgetn(query, n))
pp(A)
pp(B)

-- (find-fbcache "nameids")
f "me"                   -- works: gives my name and id
f "me/feed"              -- works: gives my feed
f "eduardo.ochs"         -- fails: (#803) Cannot query users by their username
f "eduardo.ochs/feed"    -- fails: (#803) Cannot query users by their username
f "1523735650"           -- works: gives my name and id, same as query = "me"
f "1523735650/feed"      -- fails: data = { "[]" }
f "caiohora/feed"        -- fails: (#803) Cannot query users by their username
f "100000984263854/feed" -- fails: data = { "[]" }
f "100000984263854/home" -- fails: You can only access the "home" connection for the current user.
f "280853248721200"       -- works: name = "Mariachi"
f "coletivomariachi"      -- works: name = "Mariachi"
f "280853248721200/feed"  -- works: feed
f "coletivomariachi/feed" -- works: feed
f "10204211133108213_10208690106359745"
f "10204211133108213_10208690106359745?fields=link"

-- https://developers.facebook.com/docs/graph-api/reference/v2.5/post




#####
#
# On This Day
# 2018fev12
#
#####

# «onthisday» (to ".onthisday")
# https://www.facebook.com/onthisday/?source=promotion_feed_story&story_id=10212323087742009





#####
#
# apps and websites with FB permissions
# 2018abr18
#
#####

# «apps-and-their-permissions» (to ".apps-and-their-permissions")
# https://www.facebook.com/settings?tab=applications&apps_only
# https://www.facebook.com/settings?tab=applications§ion=inactive




https://www.facebook.com/LeocadiaGregoria/posts/1115329012213776

Mô Ribeiro comentou, na página dela, que não estava
conseguindo encontrar a função procurar publicações, no
facebook, por datas, antigamente posicionada no alto do lado esquerdo
da tela, no campo "pesquisa no facebook". várias pessoas, na
publicação, disseram que também não conseguiam mais fazer
buscas por datas. #ficaadica : na atual versão do fb, essa
função agora tá disponível logo abaixo da caixa de
publicação (o tal "no que você está pensando"). basta
você clicar em "filtro" e fazer a busca por datas (mês, dia,
ano), tanto em suas próprias publicações quanto de fulanos,
beltranos e sicranos. por exemplo, se eu quero buscar uma
publicação na página da beltrana Lumaria Chan, de 07 junho de
2020, nem preciso "bater na porta dela", posso fazer isso desde meu
próprio perfil, usando esse sistema de filtros. ficou até melhor
que antes.






https://www.facebook.com/help/community/question/?id=10208939290706073

To find your join date:

1. Go to your "intro section"
2. Click the "pencil icon"
3. Scroll to the bottom of the checklist
4. Select "join date"

Your join date should now appear in your intro section.

https://www.businessinsider.com/how-to-find-your-facebook-id-number-and-sign-up-date-2014-2




http://www.techtudo.com.br/dicas-e-tutoriais/noticia/2014/01/como-ver-todas-atividades-e-posts-antigos-do-seu-perfil-no-facebook.html

https://logicmag.io/06-the-antisocial-network/ Facebook claims to bring people closer together. In fact, it's helping derail and destroy some of the few remaining places that actually do.
https://news.ycombinator.com/item?id=34367036 I deleted all my social media 3 yrs ago and I hardcore regret it everyday (reddit.com)
https://news.ycombinator.com/item?id=35477160 Reverse Engineering the Facebook Messenger API (intuitiveexplanations.com)

https://m.facebook.com/friends/center/requests/outgoing

H4o5





#  Local Variables:
#  coding:               utf-8-unix
#  End: