@@ -372,6 +372,58 @@ defmodule Facebook do
372372 page ( page_id , access_token , [ "fan_count" ] )
373373 end
374374
375+ @ doc """
376+ Basic Graph object information by object ID
377+
378+ ## Example
379+ iex> Facebook.get_object("1234567", "<Access Token>")
380+ {:ok, %{"id" => id}}
381+ """
382+ @ spec get_object ( object_id :: String . t , access_token ) :: resp
383+ def get_object ( object_id , access_token ) do
384+ get_object ( object_id , access_token , [ ] )
385+ end
386+
387+ @ doc """
388+ Get Graph object information for the specified params for the provided object ID
389+
390+ ## Example
391+ iex> Facebook.get_object("1234567", "<Access Token>", [fields: "id,name"])
392+ {:ok, %{"id" => id, "name" => name}
393+
394+ See: https://developers.facebook.com/docs/graph-api/reference/page
395+ """
396+ @ spec get_object ( object_id , access_token , params ) :: resp
397+ def get_object ( object_id , access_token , params ) do
398+ params = params
399+ |> add_app_secret ( access_token )
400+ |> add_access_token ( access_token )
401+
402+ ~s( /#{ object_id } )
403+ |> GraphAPI . get ( [ ] , params: params )
404+ |> ResponseFormatter . format_response
405+ end
406+
407+ @ doc """
408+ Gets an object edge for a specific object ID
409+
410+ ## Examples
411+ iex> Facebook.get_object_edge(:adlabels, "act_12345", "<Access Token>")
412+ iex> Facebook.page_feed(:leads, "1223344332", "<Access Token>", [fields: "created_time,id,ad_id,form_id,field_data"])
413+ {:ok, %{"data" => [...]}}
414+
415+ """
416+ @ spec get_object_edge ( edge :: atom | String . t , object_id :: String . t , access_token , params ) :: resp
417+ def get_object_edge ( edge , object_id , access_token , params \\ [ ] ) do
418+ params = params
419+ |> add_app_secret ( access_token )
420+ |> add_access_token ( access_token )
421+
422+ ~s( /#{ object_id } /#{ edge } )
423+ |> GraphAPI . get ( [ ] , params: params )
424+ |> ResponseFormatter . format_response
425+ end
426+
375427 @ doc """
376428 Basic page information for the provided `t:page_id/0`
377429
@@ -398,12 +450,7 @@ defmodule Facebook do
398450 @ spec page ( page_id , access_token , fields ) :: resp
399451 def page ( page_id , access_token , fields ) do
400452 params = [ fields: Enum . join ( fields , "," ) ]
401- |> add_app_secret ( access_token )
402- |> add_access_token ( access_token )
403-
404- ~s( /#{ page_id } )
405- |> GraphAPI . get ( [ ] , params: params )
406- |> ResponseFormatter . format_response
453+ get_object ( page_id , access_token , params )
407454 end
408455
409456 @ doc """
@@ -435,12 +482,7 @@ defmodule Facebook do
435482 @ spec page_feed ( scope , page_id , access_token , limit , fields :: String . t ) :: resp
436483 def page_feed ( scope , page_id , access_token , limit \\ 25 , fields \\ "" ) when limit <= 100 do
437484 params = [ limit: limit , fields: fields ]
438- |> add_app_secret ( access_token )
439- |> add_access_token ( access_token )
440-
441- ~s( /#{ page_id } /#{ scope } )
442- |> GraphAPI . get ( [ ] , params: params )
443- |> ResponseFormatter . format_response
485+ get_object_edge ( scope , page_id , access_token , params )
444486 end
445487
446488 @ doc """
0 commit comments