Faits :
A.
A._, née en 1996, a déposé une demande de prestations de l'assurance-invalidité le 25 février 2015. Elle a indiqué qu'elle souffrait d'un diabète de type 1 associé à une "fièvre méditerranéenne familiale", maladie orpheline, depuis 2008.
L'Office de l'assurance-invalidité du canton de Fribourg (ci-après: l'office AI) a notamment confié un mandat d'expertise interdisciplinaire (en psychiatrie et en médecine interne générale) à SMEX SA (Swiss Medical Expertise). Se fondant sur les conclusions de l'expertise, selon lesquelles l'assurée ne souffrait d'aucune atteinte à la santé ayant une incidence sur la capacité de travail (rapport du 21 septembre 2017), l'office AI a rejeté la demande (décision du 24 novembre 2017).
B.
A._ a déféré cette décision au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, qui l'a déboutée par jugement du 28 mars 2019.
C.
A._ interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation, en concluant principalement à ce que son droit aux prestations de l'assurance-invalidité soit reconnu, subsidiairement au renvoi de la cause à l'office AI pour complément d'instruction.

Considérant en droit :
1.
Le recours en matière de droit public peut être interjeté pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF. Le Tribunal fédéral applique le droit d'office (<ref-law>). Il statue par ailleurs sur la base des faits établis par l'autorité précédente (<ref-law>), sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>). Le recourant qui entend s'en écarter doit expliquer de manière circonstanciée en quoi les conditions de l'<ref-law> sont réalisées sinon un état de fait divergent ne peut pas être pris en considération.
2.
Dans un grief d'ordre formel, la recourante se plaint d'une violation de son droit à des débats publics, garanti par l'art. 6 § 1 CEDH. Elle soutient qu'elle avait présenté cette requête de manière claire et indiscutable dans son recours cantonal, de sorte que l'autorité précédente aurait dû organiser de tels débats.
3.
Pour écarter la demande de débats publics, les premiers juges ont retenu qu'elle se rapportait manifestement à l'administration des moyens de preuve et non à la publicité des débats dont il est question à l'art. 6 CEDH. Ils ont ajouté que la présence de nombreux facteurs extra-médicaux faisait apparaître le recours comme clairement infondé, ce qui constituait un autre motif de rejet de la demande; de plus, toute autre requête de preuve, comme l'audition des parents, ne s'avérait pas nécessaire.
4.
4.1. L'art. 30 al. 3 Cst., selon lequel l'audience et le prononcé du jugement sont publics, ne confère pas au justiciable de droit à une audience publique. Il se limite à garantir qu'une telle audience se déroule publiquement lorsqu'il y a lieu d'en tenir une. Le droit à des débats existe seulement pour les causes qui bénéficient de la protection de l'art. 6 § 1 CEDH, lorsque la procédure applicable le prévoit ou lorsque sa nécessité découle des exigences du droit à la preuve (cf. <ref-ruling> consid. 2 p. 290 ss). L'art. 6 § 1 CEDH garantit notamment à chacun le droit à ce que sa cause soit entendue publiquement.
La tenue de débats publics doit, sauf circonstances exceptionnelles non réunies en l'espèce, avoir lieu devant les instances judiciaires précédentes. Il appartient à ce titre au recourant, sous peine de forclusion, de présenter une demande formulée de manière claire et indiscutable. Saisi d'une telle demande, le juge doit en principe y donner suite. Il peut cependant s'en abstenir dans les cas prévus par l'art. 6 par. 1, 2ème phrase, CEDH, lorsque la demande est abusive (chicanière ou dilatoire), lorsqu'il apparaît clairement que le recours est infondé, irrecevable ou, au contraire, manifestement bien fondé ou encore lorsque l'objet du litige porte sur des questions hautement techniques (<ref-ruling> consid. 5.1 p. 98; <ref-ruling> consid. 1 p. 281; <ref-ruling> consid. 2.3 p. 333; <ref-ruling> consid. 3b p. 55; FRANK MEYER in: Karpenstein/Mayer, EMRK, Kommentar, 2ème éd., 2015, n. 64 ss ad art. 6). Le droit à des débats publics n'est pas périmé du seul fait que ceux-ci ne sont expressément demandés que lors du second échange d'écritures. En règle générale, une demande déposée pendant l'échange d'écritures est formée à temps (ATF <ref-ruling>).
4.2. Dans son recours à l'autorité cantonale, la recourante a présenté la demande suivante:
"En l'état, la recourante demande que des débats publics aient lieu. Elle se réserve de retirer cette requête, au cas où l'échange des écritures et l'administration des preuves lui auront suffisamment permis d'exposer ses moyens." (ch. VII des préliminaires au recours cantonal).
Par la suite, la recourante s'est exprimée par écrit à deux reprises, les 7 et 28 mai 2018, en demandant au tribunal de soumettre diverses questions au docteur B._. Le 11 juin 2018, le tribunal a imparti un délai de dix jours à l'intimé pour se déterminer sur l'écriture du 28 mai 2018, à l'issue duquel l'échange d'écritures serait terminé. La recourante s'est encore prononcée par lettre du 4 décembre 2018.
4.3. Il ressort explicitement des conclusions du recours du 12 janvier 2018 que la recourante avait sollicité la tenue de débats publics, cette expression y figurant en caractère gras (ch. VII des préliminaires au recours). Si la recourante a certes indiqué qu'elle se réservait la possibilité de retirer cette requête à certaines conditions, elle a formulé sa demande de débats publics indépendamment de l'offre de preuves (audition de ses parents comme témoins) qui figure dans la partie principale de son recours. A l'inverse de ce qu'a retenu la juridiction cantonale, sa demande ne portait pas sur l'administration des preuves et ne pouvait donc être refusée pour ce motif (cf. ATF <ref-ruling> consid. 3a p. 55).
Au terme de l'échange d'écritures, la recourante n'a pas retiré sa demande de débats publics - son ultime courrier du 4 décembre 2018 porte sur d'autres aspects - et la juridiction cantonale ne l'a pas interpellée à ce sujet.
Par ailleurs, l'exception au principe de la publicité retenue par les premiers juges ne saurait être considérée comme réalisée. La présence de facteurs extra-médicaux qu'ils ont constatée ne suffisait pas à faire apparaître le recours comme clairement infondé. Compte tenu des griefs du recours, la juridiction cantonale s'est avant tout attachée à examiner des éléments pertinents supplémentaires liés à la maladie de la fièvre méditerranéenne familiale et a rejeté le recours pour d'autres motifs que les facteurs extra-médicaux évoqués.
4.4. En l'absence d'une raison qui s'opposait à la tenue d'une audience publique devant la juridiction cantonale et compte tenu de la demande non équivoque formulée devant celle-ci par la recourante, à laquelle elle n'a pas renoncé, il y a lieu d'admettre que la procédure cantonale est entachée d'un vice de procédure qui entraîne d'emblée l'annulation du jugement entrepris, indépendamment des chances de succès sur le fond du recours en matière de droit public (ATF <ref-ruling> consid. 3.1 p. 335 s.). En conséquence, la cause est renvoyée à l'autorité précédente pour qu'elle donne suite à la requête de débats publics de la recourante et statue à nouveau.
Vu l'issue de la procédure, qui relève de motifs formels, il convient de renoncer à un échange d'écritures (<ref-law>; arrêt 9C_255/2019 du 16 juillet 2019 consid. 5 et la référence).
5.
La recourante, qui obtient gain de cause, a droit à une indemnité de dépens à charge de l'intimé (<ref-law>). Faute pour la recourante de justifier les raisons pour lesquelles il y aurait lieu en l'espèce de déroger à la pratique de la IIe Cour de droit social du Tribunal fédéral, il convient de lui allouer une indemnité forfaitaire de 2800 fr.
Il est statué sans frais (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis en ce sens que le jugement du Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, du 28 mars 2019, est annulé, la cause lui étant renvoyée pour qu'il procède conformément aux considérants. Le recours est rejeté pour le surplus.
2.
Il n'est pas perçu de frais judiciaires.
3.
L'intimé versera à la recourante la somme de 2800 fr. à titre de dépens pour la procédure fédérale.
4.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 9 décembre 2019
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Pfiffner
Le Greffier : Berthoud