user3788899
user3788899

Reputation: 21

How to use facebook api taggable_friends by Open Graph tag friend

How to use facebook api taggable_friends by Open Graph tag friend. my app use taggable_friends api i want to tag my friend in friends wall. to use Mentioning friends or Tagging friends https://developers.facebook.com/docs/opengraph/using-actions/v2.0#capabilities

And I use Open Graph doc Step by Step to try but give me "You, or this app's Open Graph Test User, must have published this action at least once" how to setting?

https://developers.facebook.com/docs/apps/review/opengraph

Upvotes: 2

Views: 8528

Answers (2)

Spark.Bao
Spark.Bao

Reputation: 5743

the error message "You, or this app's Open Graph Test User, must have published this action at least once" means: before you require this permission, you must call the api at least once.

I have occur this kind error before. when I require publish_actions permission, the facebook tell me this:

enter image description here

then I used my app call /me/feed api post a feed, then the error disappeared.

if you are the owner, developers or test users of the app, you can use these api before review approval. you can add roles for app in dashboard.

Upvotes: 1

j.rey
j.rey

Reputation: 121

On FB javascript sdk,

-* fb dashboard -> Open Graph

  1. Create a story
  2. List item make sure you enable the 'capabilities' features such as -tags, -user messages, -place, etc. in your action type.

-* in your js

1. call the js sdk

    window.fbAsyncInit = function() {
    FB.init({
      appId      : {YOUR_APP_ID} , // App ID
      version: 'v2.0',
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      oauth      : true, // enable OAuth 2.0
      xfbml      : true  // parse XFBML
    });
  };



    // Load the SDK Asynchronously
      (function(d){
         var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
         js = d.createElement('script'); js.id = id; js.async = true;
         js.src = "//connect.facebook.net/en_US/sdk.js";
         d.getElementsByTagName('head')[0].appendChild(js);
       }(document));
    }

3. Login into FB asking with these scopes

function Login()
    {

        FB.login(function(response) {
           if (response.authResponse) 
           {
                console.log(response.authResponse); // Get User Information.

            } else
            {
             console.log('Authorization failed.');
            }
         },{scope: 'user_friends, publish_actions, status_update, read_stream, manage_friendlists'});// ' user_interests, user_likes, etc.. '

    }

4. Get the logged user taggable_friends with a function such as:

var  var friendsIDarray = [];
var user_friend_list;
    function meTaggableFriends(){
        FB.api(
            "/me/taggable_friends",
            function (response) {
              if (response && !response.error) {
                /* handle the result */
                console.log(response)

                    for(var i=0; i<response.data.length; i++){

                        var data = response.data;
                        friendsIDarray.push(data[i].id);    
                    }
                    user_friend_list = friendsIDarray.join();

              }
            }
        );

5. Now, we have stored the token ids in user_friend_list for those friends we want to tag in our post and we can use an Open Graph action like this in order to tag friends:

FB.api(
                      'me/{namespace}:{action}',
                      'post',
                      {
                         {object-type}:'http://example.com/object/', // make sure to have the apropiate og:type meta set
                         place:'https://example.com/place/', // open graph page with metas for location, id for a location page etc
                         tags: user_friend_list, // the tokens ids for those friens you wanna tag and you got on previous step
                         title: 'whatever',
                         message: 'like this, you tag friends @['+ONE_TOKEN_ID_FROM_TAGGABLE_FRIENDS+'] , @['+ONE_TOKEN_ID_FROM_TAGGABLE_FRIENDS+'] etc'
                      }, 
                      function(response) {
                        console.log(response)
                      }
                );

you can find more information about it on:

https://developers.facebook.com/docs/opengraph/using-actions/v2.1

Hope you find it useful.

Upvotes: 9

Related Questions