create meeting as Non-login / API User, Cannot resolve method 'loginWithZoom' in 'ZoomSDK' - zoom-sdk

i'm new in zoom sdk i need help, i have 3 questions.
i know that to host a scheduled meeting as a non-login user, i need to retrieve User_ID, ZAK
to get user_id, get request to https://api.zoom.us/v2/users.
it means get already created user's user_id?
is there any way to host not sign up zoom account?
i just integrate zoom sdk in my app, and i want to let users who using my app create meeting any sign in zoom, is it possible?
i want to use Email Login so, I coded it like this.
private void Login(String email, String pw){
int result = ZoomSDK.getInstance().loginWithZoom(email, pw);
if(result == ZoomApiError.ZOOM_API_ERROR_SUCCESS){
ZoomSDK.getInstance().addAuthenticationListener(authLitener);
}
}
but, i encountered this message
Cannot resolve method 'loginWithZoom' in 'ZoomSDK'(other method work well)
how to host meeting with email, pw?

Zoom has removed the create meeting functionality from ZoomSDK. You need to use Zoom Apis to create or schedule meetings.
Also, zoom has removed login with email password in v5.9.0. Hope they provide an alternate solution.
-------------- Zoom Release Note ----------------
Removed the email login interfaces:
Interfaces in ZoomSDK:
- public int loginWithZoom(String email, String password)
- public boolean isEmailLoginEnable()

I saw that part of your question mentioned having users authenticate to use your zoom app. There is a way to circumvent the authentication process so
users who are using your App can also use your Zoom app without having to re-Authenticate. This way your users can access the app with either a company email(Domain) or a token. But you will have to be sure you configure your OWASP securely.
To your later part, If you want other members of your organization or users of your app to Create the meetings that is possible. But Zoom is role-based so if you want someone to create a meeting you will have to allow other users the host role. Most of Zooms APIs can only be accessed by the host.

Related

Facebook test users with phone number instead of email

I've been trying to create a bunch of test users for my test application that will be mocking a case when user signed up to Facebook using his phone number (not his email).
Turns out that the tool to create test users (App -> roles -> test users) allows to create only users who have email and there's no way (AFAIK) to change the data without logging in to Facebook as this user and changing his account settings.
Is it not possible or am I missing something?
EDIT 1:
I'm not actually able to add a phone number without verification
As others say there is no way to have test user without email address.
What you can do however is to create test user and when logging into your app deny access to email. It will have nearly same effect as logging in with user that has phone number instead of email. You can do it in edit section while logging in(as shown in pictures)
Unfortunately, there is no way to add testers with their phones. You can add your testers by their fbids or usernames.

How to design a User Account and User's social account database for an application

I have an application where a user is able to sign up by providing email, username and password.
This would be stored in mongoDB collection Users_Table. Now also the app allows users to sign with their social media account, if the user has one such facebook, google account and twitter.
Question is how do i go about designing the database?
My initial idea is to have 2 separate collections. The first collection has user information if he or she registers with the app.
User_Table (
Id,
firstname,
lastname,
email,
phone_number)
The second collection stores the social media account such as facebook, google, or twitter if the user has one.
I will retrieve users firstname, lastname, email and phone_number from their social media account and store it in the collection. This will be stored in the second collection.
Now if a user who has signed in with facebook decides to register with the app, how do i merge both accounts i.e. if its the same user how do i link them?
hmm, what was the business decision behind using mongo?
Why I'm asking? As someone decided to switch to mongo - it will be perfect to use advantages provided with it.
So my advice will be embed those details in one collection:
user:{
/* base fields */
_id, firstName, lastName, nickName, userName, email.... etc
socialAccount:[
{
type:"facebook/twiter/whtsEver"
name, /*and all other stuff you need here*/
}]
}
Then what app need is to make ONE call to mongo and get ALL data at once. No joins required.
Well, this is an old question but I will leave a hint just in case someone else gets the same doubts. I struggled with the same problem a long time ago and this article helped me a lot. But let’s summarize:
First, you need a table to store all the user info (name, surname, email, phone...) then you need another table to store all the info related to Thirds Party sign in /sign up integration (provider_id, user_id, bla bla...). Then you need to figure it out a way to merge the accounts created via email + password with the ones created with other providers, for that we always think in comparing fields like email, phone or names but that’s not an option (because obviously people could use different emails for their social media, they could have hide their email like Apple allows, the name is not the same, etc.. there is thousands ways how this could go wrong), so basically this is NOT an option you don’t do that. So the better approach (not an actual solution unfortunately) to do this is to ask the user to link their accounts (in their profile for example logged with his/her username + password) you just ask the user to login to their social media account and then you just "connect" your two tables in your database because now your are "almost" sure is the correct user (this is what some video games does and then give regards to the users etc..) Notice this "connect" means that you need to check if that third party account previously registered to your system and then you link it and if it’s the first time then you just also link it and then the user can use it to access his account in your system the next time they login. There is also an automatic way to do this, you actually do the previus comparation (the one I mentioned before that you shouldn’t do it and compare some field and found some "potential matches of possible the same account or duplications") but then you ask the user if it’s really his/her account and ask him/her to login into that third party provider with his her credentials (same approach but now you are suggesting the matches) and then you do the same "connect" process. Well more or less that’s approach but it’s waaaay better explained in the article by Peter Nijssen (mate where ever you are thanks 🙏 !)
Well I hope this help someone! Best regards!

Is it possible to do OAuth authentication identifying yourself as someone else?

I'm writing a web app that connects to social media services (Facebook, LinkedIn, etc.) to collect a person's contacts for publicity purposes. The person wants this service and is paying for it, and recognizes my company and app name when it pops an OAuth dialog that says Contact Manager from Company Y would like to access your connections. Do you want to allow this?
However, now I want to license my app to a publicity agency which would use the app to manage contacts for their clients. The app would then have to send an OAuth request to their client, except that the client hired the agency not me, and they won't recognize my company and app name.
So the question is: can my app identify itself on behalf of the agency, and say to the user Contact Manager from Your PR Agency would like to access your connections. Do you want to allow this? so that the person reading this will know that the request is coming from someone they know, instead of me, whom they don't know?
Normally you will need to register different applications and create application keys for each of your agencies in order to be able to do this, since OAuth providers generally display the application name to the user.

Facebook test users and auth

I have a project where I am using Selenium to test the Facebook auth. I created a Facebook app, created a test user inside this app and created some tests using Facebook login. Until now, it was working. But during the last two weeks something changed in Facebook and my tests are failing. It is due to interface changes in permissions dialog (I am targeting the button by his id). The second problem is that I don't get the email address from Facebook test user but a proxy email which is longer than 75 characters (my db field length is hardcoded in framework I am using).
If I log in as a regular user, it is working correctly and I get this permission box:
But when I log in as the test user I created (via 'switch to' in app's developer roles), I get this box:
I tested it ~2 weeks ago and this was yet working. Today it is changed. So my questions:
How to get back the old permissions box for test users?
How can I get the real email address and not the proxy?
Thanks!
I experienced the same problem with the Auth Dialog. I tried it with some old and new apps with various settings including March/Apr. 2013 Breaking Changes enabled/disabled, but it didn't help.
However, I guess I can help you with the email problem. When you login as a test user and go to account settings page, you will see the test user's primary email addres. By default this should be a really long one like the image I attached.
Facebook Platform returns this primary email address. If you pass the Auth Dialog with your test user account and see the privacy setting page, you will find the default primary email address is shared with the app. You have to provide a new email address for the test user and set the new one as primary email address via account setting page.
Why is the Login Dialog different with a test user?
With your test user, you can see the future of login dialogs. In fact, this isn't "not working" but this is an update which was unveiled on December 2012. Let me quote:
Our Login dialogs have undergone a redesign to make it easier to
understand permissions that apps request. We've simplified
presentation and have also updated our language for greater clarity.
“Basic info” has been renamed to “public profile and friend list,” to
reflect what what is being shared. Apps accessing your public profile
get your name, profile picture, age range, gender, language, country
and other public information.
Source: Providing People Greater Clarity and Control, developers.facebook.com/blog
The reason why you don't meet this update with a regular user, is that Facebook doesn't use to update everyone at the same time. They partially launch updates depending on the country, the type of account or some other parameters I ignore.
Example of a partial update (unified_message FQL table) dedicated to developer accounts:
We are providing early access to this API for registered developer
accounts only until the new messaging system is broadly available. You
should use the message table for production applications at the
current time.
In our case, we now know that test users can access to the update, but it is also said:
We have already launched many of these improvements as part of our
iOS6 integration and are now rolling them out more broadly.
About proxy emails
In fact, proxy emails are a way for any users to keep their real email anonymous. You have to consider proxy emails.
When joining an app, the user can choose between a real email and a proxy email:
Other thing you need to expect are users who didn't validate their account when connecting to your app, a case which is possible as described here and here.
Then, why do test users give back a proxy email? Because test users (being bots and having fake emails) didn't validate their emails.
You see that in at least 3 cases (and finally, test users are a good example), you need to handle these proxy emails. They are incidentally or accidentally met by developers and they can't be neglected. For your case, you can still try to disallow tests users who have a proxy email from accessing your app. But you should accept them and shouldn't force them to share their original e-mail addresses. A better solution is that you validate the test users emails:
Connect to the test user account that gives a proxy email
Add an email address (password needed here),
Go to the email mailbox and click on the validation link,
Set the new email address as primary,
The test user should now give his original email and not a proxy anymore!

iOS identify user(s)

I am building app that will serve some content to the users via my private server. At the server-side I would like to identify user, so that I don't serve same content twice to the same user. How can I identify user(s)?
One way is DeviceID, but user can have multiple devices...?
Is the only way to have my own user IDs for my application (registration). I don't like this as it adds extra complexity to the app.
I know it's a hard task, but maybe facial recognition (from the webcam) could help in logging in users, since it doesn't imply any relation between user and device.
For example, face.com offers a free web-based API for facial recognition.
Although, Ishu's answer (username/password) is the easiest and most standard way to do identify users.
Make an id for user's and also a login page in the app. save his id with in you content table for send that content for that user. if that content entry already having his id then don't send to him otherwise send to him.
I don't think there is another option. You must use user id nothing else.