User vérification :Name, photo, university

good evening App Inventor, i think you are doing well. So here is my aia file, my App Script code and my google sheet. I want when I scan the QR code that contains the id the app does a check, name, nickname, photo and promotion and display this information on my app, but if the id is not in the database data, that the application display a red cross. but even in my app i notice that there is a little error in my blocks. Because when the name is not in the database it does not display the image of the red cross. Help me please.
var ss.pdf (123.3 KB) kgroup_co.aia (11.3 KB)PASSE SANITAIRE - CODE.pdf (37.8 KB)

If you are asking for help, I recommend you to make it as easy for others to be able to help you ...
You probably will get more feedback then...

which means in your case post a screenshot of your relevant blocks...

To download the aia file, upload it to App Inventor, open it, do some bug hunting for you, etc... this takes time, and most people will not do that...
Thank you.

Taifun


Trying to push the limits! Snippets, Tutorials and Extensions from Pura Vida Apps by icon24 Taifun.

Merci beaucoup. Je le fais

Looking at your script, it will always return id not found
(it showed me the red cross every time)

Try like this with your script:

function doGet(e){

    var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/16lwID4caMudPAgkoaA5jOTP02yTjFGVWrzdreAVn0lU/edit#gid=865128867");
    var sheet = ss.getSheetByName("CODE");
    var message = '';
	var id = e.parameter.id;
	var values = sheet.getRange(2, 1, sheet.getLastRow(),sheet.getLastColumn()).getValues();
		for(var i = 0;i<values.length; i++){
		if(values[i][0] == id ){
		i=i+2;
		var name = sheet.getRange(i,2).getValue();
		message = name;		
		} else
		message = 'id not found';
		}
	return ContentService.createTextOutput(message).setMimeType(ContentService.MimeType.TEXT);
}

and change your screen2.initialise blocks to this:

Remember to republish(legacy editor)/set new version(new editor) with your apps script

1 Like

Merci. J'essaie ça maintenant

I have also found a couple of errors in your Web1.GotText

Use these blocks instead:

You should be able to drag these blocks onto your project blocks editor and remove the existing ones

In testing this is working for me, so it seems you have got your script working correctly too.

I also attached a revised aia project for you

kgroup_co_revised.aia (11.3 KB)

Je reviens encore vers vous. Rôle de mon application : c'est une application de vérification à l'aide de QR code. J'ai placé donc 4 label et une image. Le label2 est je l'ai rendu visible et le 1er Label(affiche le id ou le contenu du QR code après Scan), 3ème Label ( affiche si l'utilisateur est trouvé ou pas dans la base de données Google sheet) et 4ème Label (le nom de l'utilisateur. Il doit s'afficher que quand l'utilisateur est trouvé. J'ai aussi télécharger deux images. Une image Avec une signe 'OK' vert ( quand l'utilisateur est trouvé l'image de la 'OK', vert doit s'afficher ), une croix rouge ( quand l'utilisateur n'est pas trouvé dans la base de données). Mon 1er problème est le suivant, quand je scanne mon QR code et que l'utilisateur est trouvé, cela fonctionne comme je l'ai voulu (Label1 : affichage de id de l'utilisateur, affichage de l'image avec le signe 'OK' vert, affichage du texte utiliser trouvé et l'affichage de nom de l'utilisateur), mais quand je scanne un QR code dont l'utilisateur n'est pas dans la base de données, normalement ça devrait afficher l'image de la croix rouge, le id et le texte qui montre que l'utilisateur n'est pas trouvé. Mais ça monte toujours la croix verte, puis le texte qui devrait dire que l'utilisateur n'est pas ne s'affiche pas, c'est seulement le texte utilisateur trouvé qui s'affiche et le nom qui s'affiche ainsi (nom=id non trouvé pourtant il ne devrait même pas s'afficher). J'ai essayé le code de TIMAI2 mais pas de solution. Peut-être que j'étais trop bref quand j'ai envoyé le premier message. Là maintenant j'ai voulu être trop explicite. Merci TIMAI2. JE CROIS que c'est très clair maintenant ma question. Voici donc mes blocs et screenshots de l'application.

Merci beaucoup

Je l'essai pouvoir TIMAI2

Merci beaucoup. Ça fonctionne très bien :muscle::muscle::muscle::muscle:. Merci beaucoup pour m'avoir aidé.

Sinon j'ai un autre problème. Je voudrais ajouter aussi en plus de la vérification du nom, ajouter le prénom, la promotion et la photo que de l'utilisateur. Cela veut dire quand je scanne le QR code, que son nom, son prénom, sa promotion et sa photo apparaisse dans mon application. Il y a donc le script à modifier certainement et mes blocs. Pouvez m'aider aussi en cela s'il vous plaît ? Je suis bloqué

Yes, you can do that if you have the user data in your spreadsheet.

Where is the user image stored, on google drive? You will need to get the url/fileID in order to display the image?

Bonjour, oui J'ai une image dans mon Drive.

Cette image est donc la présentation de ma feuille Sheet dans laquelle mon application prendra les données à afficher. Jusque là comme vous le savez bien, mon application n'affiche que le nom (donc la colonne B) quand l'utilisateur est trouvé. je voudrais maintenant qu'elle affiche aussi le le surnom (colonne C), image (colonne D. Qui sera justement la photo d'un personne stocké dans mon drive) et la dernière c'est la promotion de la personne ( colonne C). J'ai du mal à rajouter dans mon script des lignes de code pour que mon application prenne en compte l'affiche en plus du nom, mais du surnom, images et promotions. Aussi dans mes blocs je ne sais pas ce que je peux ajouter pour que cela soit fait. Vous avez mon script je crois et aussi vous avez le fichier aia de mon application que d'ailleurs vous avez modifié et qui marche maintenant. Pouvez vous m'aider s'il vous plaît ?

If you modify your google apps script to look like this:

function doGet(e){

    var ss = SpreadsheetApp.getActive();
    var sheet = ss.getSheetByName("CODE");
    var message = '';
	var id = e.parameter.id;
	var rg = sheet.getRange(2, 1, sheet.getLastRow()-1,sheet.getLastColumn()).getValues();
	for(var i = 0;i<rg.length; i++){
		if(rg[i][0] == id ){
		i=i+2;
		message = sheet.getRange(i,1,1,5).getValues();
        
        } else
		message = 'id not found';
		}
	
    return ContentService.createTextOutput(message).setMimeType(ContentService.MimeType.TEXT);
}

then it should return the entire row as a commas separated string which, in your app blocks, you can convert to an AI2 list to access the individual items on the list... id, Name, Surnom, Image(url), promotion.

You can then modify your blocks to display the texts or image as required

Ah d'accord merci. Et comment les blocs peuvent être ? Pour rajouter les autres éléments afin qu'ils s'affichent sur mon application Monsieur TIMAI2 ? j'ai commencé avec MIT il y a pas longtemps et je voudrais m'améliorer. Si possible vous pouvez réviser mes blocs pour voir à quoi ça peut ressembler et appliquer cela. Aidez moi s'il vous plait :pray:.

Edit script as above and republish/create new version

Drag these blocks and replace existing

Merci beaucoup TIMAI2. Je test cela avec le nouvel script que vous m'avez envoyé.

Bonjour TIMAI2. J'ai testé l'application en modifiant tout ce que vous m'avez demandé, mais j'obtiens cette erreur après avoir scanné

if you look at the error message carefully you will see, that the error occurs here (circle)


probably because there are spaces in that string "id not found"?
Taifun

Je revois mes blocs et je vous reviens. Merci Taifun