Configurar um token de aplicativo para Instagram oneboxes

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 curtidas

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 curtidas


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 curtidas

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 curtida

@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 curtidas

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 curtida

Pergunta Rápida: O processo mudou para ser “Instagram Basic Display” ou eu estou muito, muito cego? Porque não consigo ver a opção oEmbed, o mais próximo por definição que eu suponho que seja o Instagram Basic Display.

Citando:

O Instagram Basic Display permite que os aplicativos acessem a API do Instagram Basic Display, que fornece acesso somente leitura a dados básicos nas contas do Instagram dos usuários do aplicativo.

Use esta guia para configurar a janela de autorização da API para que você possa obter permissões dos usuários e para enviar seu aplicativo para Revisão de Aplicativo quando estiver pronto para mudar para o Modo Ativo.

Observe que o Basic Display não é uma ferramenta de autenticação. Os dados retornados pela API não podem ser usados para autenticar os usuários do seu aplicativo ou fazer login neles. Se o seu aplicativo usar dados da API para autenticar usuários, ele será rejeitado durante a Revisão de Aplicativo. Se você precisar de uma solução de autenticação, use o Login do Facebook em vez disso.

Ele, no entanto, requer outras URLs que não estão listadas aqui, então não tenho certeza, por exemplo:

Configuração OAuth do Cliente

URL de Callback de Desautorização


(Também talvez algo tenha mudado porque não funciona aqui, eu acho?)

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

3 curtidas

pelo que posso dizer, ainda é oEmbed read com acesso avançado

1 curtida

Entendi. Há uma diferença em relação ao tutorial, então.

Em vez de ser adicionado como qualquer outro recurso (chamado de "Produtos" na interface do usuário) no Painel, agora ele é solicitado na seção "Solicitar" do menu "Revisão do aplicativo". Você seleciona o recurso e o envia para revisão.

O que torna o processo meio que uma brecha, porque eles solicitam um link com um oEmbed válido para aprová-lo… mas não funciona porque o recurso não foi aprovado… :sweat:

4 curtidas

Agora funciona na minha conta. Tentarei resumir o que você precisa. Não sou particularmente entendido em tecnologia, então não tenho certeza se consigo responder a muitas perguntas, mas suponho que você possa copiar minhas configurações o mais próximo possível para verificar se tudo funciona.

Você precisa de login do Facebook (não sei se a API do Instagram Graph é realmente necessária). Verifique se o login do Facebook funciona na sua instalação do Discourse

Configurações de login do Facebook:

Configurações básicas:

Configurações avançadas:

3 curtidas

Olá a todos, queria avisar que a partir de hoje, a descrição do @Iceman permanece precisa.

Alguns layouts de página foram modificados em relação ao guia (:point_up:), mas a principal diferença é que o oEmbed deve ser solicitado depois que seu aplicativo for aprovado na Revisão do Aplicativo.

No menu “Revisão do Aplicativo”, você pode fazer solicitações:

Meu aplicativo ainda não passou pela Revisão do Aplicativo, mas o @undasein conseguiu fazê-lo funcionar recentemente, com a ajuda deste guia e conselhos de https://stackoverflow.com/questions/67998234/starting-using-instagram-oembed-feature.


Boa sorte compartilhando seus `grams, pessoal! :slight_smile:

3 curtidas

Na minha solicitação, não fiz nada elaborado. Apenas escrevi “Gostaria de incorporar posts do Instagram no meu fórum” e foi aprovado em um dia.

1 curtida

Como posso acessar o oembed read avançado? Nem consigo solicitá-lo porque o botão está desativado. Fiz algumas chamadas de API no gráfico, mas nada acontece mesmo após 24 horas

Alguns usuários contornaram isso enviando o aplicativo para revisão por um motivo diferente (como login do Facebook) e, uma vez aprovado, alguns recursos podem ser solicitados, como “Oembed Read”.

Você pode querer entrar em contato com os canais de suporte da plataforma para entender o que está acontecendo com sua conta. :+1:

1 curtida

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

oEmbed não existe mais, em que devo colocá-lo em vez disso?

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

Não consigo ver a opção oEmbed, qual você escolheu?

Seu aplicativo já passou na Revisão de Aplicativos, @danielabc?

1 curtida

quando vou para a opção, o botão está desativado e não consigo clicar

quando vou para a opção, o botão está desativado e não consigo clicar

Meu acesso foi revogado porque não foi usado por 90 dias. O que significa, acho, que ninguém no meu fórum postou um link do Instagram recentemente.

Então, aqui está o status atual da permissão de Leitura oEmbed:

Para solicitar acesso avançado a esta permissão, você precisa fazer uma chamada de API de teste bem-sucedida. Pode levar até 24 horas após a primeira chamada de API para que este botão fique ativo. Saiba mais sobre testes

Como, na prática, fazemos uma chamada de API com Discourse neste contexto para solicitar acesso avançado novamente? :thinking:

2 curtidas