1.0.3 • Published 6 years ago

tb-social v1.0.3

Weekly downloads
3
License
ISC
Repository
github
Last release
6 years ago

tb-social

Esta módulo permite realizar acciones sobre distintas redes sociales como Facebook, Twitter, Google Plus y LinkedIn

Para utilizar los distintos servicios primero es necesario instalar su respectivo módulo y luego configurar las credenciales en la aplicación.

Módulos de servicios:

  • tb-social-facebook
  • tb-social-twitter
  • tb-social-gplus
  • tb-social-linkedin

Configuración

- Desde la interfaz de administración A2Server:

En la aplicación seleccionada acceder a la sección "Configuración" y luego a la pestaña "Social".

Una vez en la pestaña se pueden observar las secciones para completar los distintos servicios.

Cada servicio requeire distintos campos que rellenar:

  • Facebook:
    • Application ID
    • Application Secret
  • Twitter:
    • Consumer Key
    • Consumer Secret
  • LinkedIn:
    • Client ID
    • Client Secret
  • Google Plus:
    • Client ID
    • Client Secret
  • Vimeo:
    • Client Id
    • Client Secret
    • Access token (Opcional)
  • Flickr:
    • Client Key
    • Client Secret
    • Access token (Opcional)
    • Access Secret (Opcional)

- Configuracion manual:

La configuración de cualquier servicio se realizar en el archivo config.json que se encuentra en la carpeta app. Para ellos hay que incluir y modificar un objeto llamado socialOptions y agregar un objeto interno para cada servicio que se utilizará que contendrá las credenciales. La clave de cada objeto será especial para cada servicio usando las siguientes claves para cada servicio:

  • Facebook -> facebook
  • Twitter -> twitter
  • Google+ -> gplus
  • LinkedIn -> linkedin
  • Vimeo -> vimeo
  • Flickr -> flickr

La información que contendrá cada objeto depende del servicio, pero en general todos necesitan:

  • Un identificador de la aplicación registsrada en el servicio.
  • Una clave secreta de la aplicación registsrada en el servicio.

El nombre para cada uno de dichos campos para cada servicio, se muestra junto con un ejemplo a continuación:

...
"socialOptions": {
  "facebook": {
    "appId": myFacebookClientId,
    "appSecret": myFacebookSecretKey
  },
  "twitter": {
    "consumerKey": myTwitterClientId,
    "consumerSecret": myTwitterSecretKey
  },
  "gplus": {
    "clientId": myGPlusClientId,
    "clientSecret": myGPlusSecretKey
  },
  "linkedin": {
    "clientId": myLinkedInClientId,
    "clientSecret": myLinkedInSecretKey
  },
 "vimeo":{
    "clientId": "myVimeoClientId",
    "clientSecret": "myVimeoClientSecret",
    "accessToken": "myVimeoDefaultAccessToken"
  },
  "flickr":{
    "clientKey": "myFlickrClientKey",
    "clientSecret": "myFlickrClientSecret",
    "accessToken": "myFlickrDefaultAccessToken",
    "accessSecret": "myFlickrDefaultAccessSecret"
  }
}
...

Modo de uso

Los servicios se pueden utilizar de dos maneras:

- Mediante llamadas internas al modelo (Servidor):

Las llamadas internas se realizan utilizando las funciones del módulo social accediendo a él a través del objeto global App como en el siguiente ejemplo.

var service = "facebook"; // Servicio
var accessToken = "…";
var tokenSecret = "…";
var Social = App.social.forService(service, accessToken, tokenSecret)
  .then(client => {…})
  .catch(err => {…});

- Mediante REST Api (Servidor o cliente):

Realizando peticiones a los servicios de social con el siguiente formato de URL:

https://[domain]:[port]/api/v[apiVersion]/srv/social/

Funcionalidades

A continuación se detallarán las funcionalidades de las que dispone el módulo.

- Hacer una publicación / Subir un archivo:

• REST Api:

Petición:

HTTP MethodURL
POST / POST Multiparthttps://[domain]:[port]/api/v[apiVersion]/srv/social/post?service=<service>

Parámetros del query:

ClaveTipoOpcionalDescripción
serviceStringServicio de social (valores: facebook, twitter, gplus, linkedin)

Parámetros Body:

ClaveTipoOpcionalDescripción
fileUploadFileX(Sólo para POST Multipart) El archivo que se va a subir
tokenStringEl access token del usuario
tokenSecretStringX(Sólo para twitter) Access Token Secret del token del usuario.
dataObjectObjeto con la información que se va a publicar.
data.messageStringMensaje que se quiere publicar
data.linkStringXLink que se incluirá en la publicación
data.titleStringXTítulo que se incluirá en la publicación de archivos
data.descriptionStringXDescripción que se incluirá en la publicación de archivos
data.privateBooleanXIndica si la publicación será privada o no (Vimeo, Flickr)

Respuesta:

Actualmente la respuesta varía en función del servicio por el que se realiza la publicación.

Ejemplo Publicacíon Twitter:

  • Petición:
 POST:  http://a2server.a2system.net:1234/api/v1/srv/social/post?service=twitter
  • Body:
{
  "token":"1xxxx377xx-OI3dlxxxxyI3tRzvczGxxxZtcyCxsvo8qxxxxli",
  "tokenSecret":"oS9xxxxNUxxxJ3ryY3xUl270xxxSwgBcekzRjvmhxxxD5",
  "data":
    {
      "message":"Test post",
      "link":"https://www.google.com"
    }
 } 

Ejemplo Subida de archivo Vimeo (Multipart):

  • Petición:
 POST Multipart:  http://a2server.a2system.net:1234/api/v1/srv/social/post?service=vimeo
  • Parámetros Multipart:
 "fileUpload": <archivo a subir> 
 "token":"userVimeoToken"
 "data.title": "My video title"
 "data.description": "My video description"
 "data.private": "true"

Ejemplo Publicación desde link Vimeo:

  • Petición:
 POST Multipart:  http://a2server.a2system.net:1234/api/v1/srv/social/post?service=vimeo

ó

 POST:  http://a2server.a2system.net:1234/api/v1/srv/social/post?service=vimeo
  • Parámetros Multipart:
 "link": <link a video a subir> 
 "token":"userVimeoToken"
 "data.title": "My video title"
 "data.description": "My video description"
 "data.private": "true"

ó

{
  "token":"userVimeoToken",
  "data":
    {
      "title":"My video title",
      "description": "My video description",
      "link":"https://www.google.com"
      "private": true
    }
 } 

• Código Javascript:

En primer lugar hay que obtener un objeto para realizar utilizar el servicio como se explica en la sección "Modo de uso" y luego realizar la publicación.

- Información para obtener cliente del servicio:
ClaveTipoOpcionalDescripción
serviceStringServicio de social (valores: facebook, twitter, gplus, linkedin)
tokenStringEl access token del usuario
tokenSecretStringX(Sólo para twitter) Access Token Secret del token del usuario.

##### - Información para la publicación:

ClaveTipoOpcionalDescripción
dataObjectObjeto con la información que se va a publicar.
data.messageStringMensaje que se quiere publicar
data.linkStringXLink que se incluirá en la publicación
data.titleStringXTítulo que se incluirá en la publicación de archivos
data.descriptionStringXDescripción que se incluirá en la publicación de archivos
data.privateBooleanXIndica si la publicación será privada o no (Vimeo, Flickr)
data.fileFileXArchivo que se va a subir (Vimeo, Flickr)
- Ejemplo:
  var service = "facebook"; // Servicio
  var accessToken = "…";
  var tokenSecret = "…";
  var data = {
    "message": "Hello world!"
  }
  var Social = App.social.forService(service, accessToken, tokenSecret)
    .then(client => {
      client.post(data)
    })
    .then(res => {…})
    .catch(err => {…});
1.0.3

6 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago