Configurar un token de aplicación para los oneboxes de Instagram

If you already have a Facebook App associated with your Discourse site, scroll down to Adding oEmbed to your Facebook App.

If you do not have a Facebook Developer account and Facebook App:

Go to https://developers.facebook.com/. You’ll be prompted to log in to your Facebook account if you aren’t currently logged in. You may be asked to ‘convert’ your Facebook account to a developer account if you haven’t done so previously. You may be asked to verify your account with Facebook by adding a phone number or by completing other steps. You’ll need to just follow the prompts and do what Facebook requires of you.

Once you have a Facebook Developer account, click on ‘My Apps’ from the Facebook Developer homescreen:

…and ‘Create App’:

Select an app type of ‘Something Else’ and ‘Continue’:

Enter an ‘App Display Name’ and an ‘App Contact Email’. Once you’ve read through their Terms and Polices, you can click ‘Create App’:

If you are a robot: nothing to see here. Beep bop boop. :robot:

If you are not a robot: click “I’m not a robot”, follow the prompts, and click ‘Submit’.

Congrats! You have a Facebook App!

Adding oEmbed to your Facebook App:

Scroll to the bottom of the list of Products, find ‘oEmbed’ and click ‘Set Up’:

If you agree with how you’re going to use the oEmbed product, click the checkbox, and then click ‘Confirm’:

The oEmbed product has been added. Click on ‘Settings’:

‘Display Name’ and ‘Contact Email’ should already be filled in. You’ll need to enter URLs for your ‘Privacy Policy’ and ‘Terms of Service’. Select a ‘Category’ from the list of available options. Click ‘Save Changes’ when you’re happy with everything:

Click the toggle at the top of the screen to change from ‘In development’ to ‘Live’ mode:

Click ‘Switch Mode’:

Having done all that, we can actually generate an App Token by following Facebook’s instructions on App Access Tokens. You’ll need the value of the ‘App ID’ field, and the value of the ‘App Secret’ field. To get the App Secret, click ‘Show’. You may be asked to reauthenticate yourself or similar, but you should end up with a long hexadecimal value that you can copy:

As per Facebook’s documentation, you need to send those values to Facebook to generate a token. Are you familiar with using curl? Great! They suggest the following (replacing {your-app-id} and {your-app-secret}) with the values you copied from the screen above.

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"

Alternatively, copying just the URL (after replacing those two values) to your browser should also work:

https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials

Facebook will respond with a small chunk of JSON, that should look something like this example:

{"access_token":"1234567890654321|c3bd55c09fc5e561552ad7a8717","token_type":"bearer"}

Copy the value of your access_token, excluding the quote marks (i.e., in my example it would be 1234567890654321|c3bd55c09fc5e561552ad7a8717), and go to your Discourse site’s Settings. Find the site setting called facebook_app_access_token in the Onebox setting. Paste the ‘access_token’ value in to this field:

Click the :white_check_mark: …and you’re done!

Pasting a URL such as https://www.instagram.com/p/CIRhYzFM7Lu/ in to a post on your site should result in a lovely onebox, just like this one:

https://www.instagram.com/p/CIRhYzFM7Lu/

Last edited by @JammyDodger 2024-05-26T06:49:11Z

Check documentPerform check on document:
17 Me gusta

New oEmbed Read Feature and App Review Requirements

Today, June 8, 2021, we announced v11.0 of the Graph API and Marketing APIs. With this update, there are new requirements to be able to access oEmbed APIs . Some of your apps currently access the oEmbed APIs and might be affected by these changes.

To continue accessing the oEmbed APIs, you will have to submit your apps for review by September 6th, 2021 . If you want to request new access to the oEmbed APIs, you will also need to submit your app(s) for review.

To learn more, please review the updated requirements. If your apps haven’t been reviewed for the oEmbed API feature by September 6, 2021, your apps will lose access to this feature. To avoid disruption to your apps’ oEmbed access, please submit for App Review as soon as possible.

New rules from our Facebook overlords, I’ve just submitted both of my apps for review. I found a public post with an Instagram embed and linked directly to show how the integration works. Hopefully this is sufficient.

8 Me gusta


womp womp, review failed.

here’s what i submitted

Your submission details

Is a Facebook reviewer able to access or login to your app to verify you’re using permissions or features according to Facebook Platform Policy?

Yes

Platform Settings

Desktop

Site URL:https://fixed.org.au/

No account needed

  1. Visit The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA
  2. The instagram post is embeded in the page. The site is running Discourse forum software (https://discourse.org/)

Oembed Read

Tell us how you’re using this permission or feature

Discourse (https://discourse.org/) can embed Instagram and Facebook posts in community posts, it keeps people on our website while richly embedding content

Oembed URL

The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA

I just resubmitted (had some extra text in Oembed URL) and it’s been approved!!! :smiley: waiting for my second app to be…

3 Me gusta

The text looks the same as in your initial review submit. Can you elaborate on what extra information you provided compared to the failed review?

In addition: Did you pass FB login data to the forum or not?

1 me gusta

@znedw my question still stands, if you can help everyone with some insight on this please?

The first review failed because I had some extra text in the Oembed URL field and the form removes spaces onsubmit, so the URL didn’t work… That’s the only difference between attemps

Nope, in the Platform section (I had to add a platform in the wizard), I just wrote

No account needed

I didn’t really want to setup a discourse account just for FB review, so I just found a post on our forum that was public, and had an Instagram image embedded. I thought this would show how the integration functions well enough. I guess FB could read the discourse source and work it out themselves :man_shrugging:

Sorry I missed this. I literally did no changes to either forum, just found a forum post with an instagram pic embedded as mentioned above and then walked through the app review wizard on FB

3 Me gusta

Hi @znedw, I followed your guide and got our app review approved 24 hours later.

Although, I had to enter the direct link to the embedded Instagram post into the oEmbed-URL field as the form did not accept the link to the topic on our domain in that field. Maybe they changed that part.

For the rest, I followed exactly your wording. And it worked.

1 me gusta

Pregunta rápida: ¿El proceso cambió a ser “Instagram Basic Display” o estoy muy, muy ciego? Porque no veo la opción oEmbed, lo más cercano por definición que supongo que es Instagram Basic Display.

Citando:

Instagram Basic Display permite a las aplicaciones acceder a la API de Instagram Basic Display, que proporciona acceso de solo lectura a datos básicos en las cuentas de Instagram de los usuarios de la aplicación.

Utilice esta pestaña para configurar la ventana de autorización de la API para que pueda obtener permisos de los usuarios, y para enviar su aplicación a Revisión de aplicaciones cuando esté listo para cambiarla al modo en vivo.

Tenga en cuenta que Basic Display no es una herramienta de autenticación. Los datos devueltos por la API no se pueden utilizar para autenticar a los usuarios de su aplicación ni para iniciar sesión en su aplicación. Si su aplicación utiliza datos de la API para autenticar usuarios, será rechazada durante la Revisión de aplicaciones. Si necesita una solución de autenticación, utilice Inicio de sesión con Facebook en su lugar.

Sin embargo, requiere otras URL que no están listadas aquí, así que no estoy seguro, por ejemplo:

Configuración OAuth del cliente

URL de devolución de llamada de desautorización


(¿Quizás también cambió algo porque creo que aquí no funciona?)

https://www.instagram.com/p/CIRhYzFM7Lu

3 Me gusta

hasta donde puedo decir, sigue siendo oEmbed read con advanced access

1 me gusta

Ya veo. Hay una diferencia con el tutorial, entonces.

En lugar de agregarse como cualquier otra función (llamada “Productos” en la interfaz de usuario) desde el Panel, ahora se solicita desde la sección “Solicitud” del menú “Revisión de la aplicación”. Selecciona la función y la envía a revisión.

Lo que hace que el proceso sea un poco irregular porque solicitan un enlace con un oEmbed válido para aprobarlo… pero no funciona porque la función no está aprobada… :sweat:

4 Me gusta

Ahora funciona en mi cuenta. Intentaré resumir lo que necesitas. No soy particularmente técnico, así que no estoy seguro de poder responder muchas preguntas, pero supongo que solo copia mi configuración lo más fielmente posible para comprobar que todo funciona.

Necesitas el inicio de sesión de Facebook (no sé si la API de gráficos de Instagram es realmente necesaria). Comprueba que el inicio de sesión de Facebook funciona en tu instalación de Discourse.

Configuración de inicio de sesión de Facebook:

Configuración básica:

Configuración avanzada:

3 Me gusta

Hola a todos, quería informarles que a partir de hoy, la descripción de @Iceman sigue siendo precisa.

Algunos diseños de página se han modificado con respecto a la guía (:point_up:), pero la principal diferencia es que oEmbed debe solicitarse después de que su aplicación haya pasado la Revisión de la aplicación.

Desde el menú “Revisión de la aplicación”, puede realizar solicitudes:

Mi aplicación no ha pasado la Revisión de la aplicación, pero @undasein pudo hacer que funcionara recientemente, con la ayuda de esta guía y consejos de https://stackoverflow.com/questions/67998234/starting-using-instagram-oembed-feature.


¡Buena suerte compartiendo sus `grams, gente! :slight_smile:

3 Me gusta

En mi solicitud, no hice nada elaborado. Simplemente escribí “Me gustaría incrustar publicaciones de Instagram en mi foro” y fue aprobado en un día.

1 me gusta

¿Cómo puedo acceder a la lectura avanzada de oembed? Ni siquiera puedo solicitarla porque el botón está deshabilitado. Hice algunas llamadas a la API en el gráfico, pero no sucede nada incluso después de 24 horas.

Algunos usuarios han logrado solucionar esto enviando la aplicación para su revisión por otro motivo (como el inicio de sesión de Facebook) y, una vez aprobada, se pueden solicitar algunas funciones, como “Oembed Read”.

Es posible que desees ponerte en contacto con los canales de soporte de la plataforma para comprender qué está sucediendo con tu cuenta. :+1:

1 me gusta

[quote=“Jamie Wilson, post:1, topic:223548, username:jamie.wilson”]noEmbed
[/quote]

oEmbed ya no existe, ¿qué pongo en su lugar?

[quote=“Iceman, post:10, topic:223548, username:Iceman”]Instagram Basic Display
[/quote]

No veo la opción Oembed, ¿cuál elegiste?

¿Tu aplicación ha pasado la revisión de la aplicación todavía @danielabc?

1 me gusta

cuando voy a la opción, el botón está desactivado y no puedo hacer clic

cuando voy a la opción, el botón está desactivado y no puedo hacer clic

Se revocó mi acceso porque no se utilizó durante 90 días. Lo que significa, creo, que nadie en mi foro ha publicado un enlace de Instagram recientemente.

Así que, este es el estado actual del permiso de lectura de oEmbed:

Para solicitar acceso avanzado a este permiso, necesitas hacer una llamada API de prueba exitosa. Puede tardar hasta 24 horas después de la primera llamada API para que este botón se active. Aprende sobre las pruebas

¿Cómo hacemos en la práctica una llamada API con Discourse en este contexto para solicitar acceso avanzado nuevamente? :thinking:

2 Me gusta