I'm currently using Twilio Frontline on top of my conversation service and my identity for each user is a uuid so when a message comes in on Frontline, it displays that user's uuid. This can get confusing if we have multiple participants in chat. Assigning a name as the identity would not work since it may not be unique. Assigning their email as the identity would not work as well if they update the email.
In Conversations, the name of a participant in a conversation comes from the underlying User resource and the FriendlyName property.
You can update Conversations Users using their identity as the key in the URL and set the FriendlyName, that will then show in Frontline instead of the identity.
We also recommend using the onParticipantAdded Conversations webhook to do things like setting a customer_id, avatar and display_name for customers in a conversation.
You can read more in the How to enable incoming messages? section of our Quickstart Guide.
On 'Sign in with Apple' If the user opted for “Hide my Email”, he will be registered with a private email id. Again if the same user tries to Register with the original email address (with any social media account or with original email id), he will be treated as a different user?
How is it possible to make sure we have a unique user in the database after registration?
As per apple doc: link (https://support.apple.com/en-in/HT210425)
If you choose to hide your email when you create an account with an
app or website using Sign in with Apple, a unique, random email
address is created so your personal email can stay private.
To answer your question:
If user sign-in with actual email id from another platform/social
login then this will be a new user for you.
Don't use the email address as an unique identifier, you can use the "sub" parameter returned in the identity Token JWT, the value of this parameter is the same for the same Apple ID user and is unique, across all apps that belongs to your Apple developer account / organization.
This is my first time using of zendesk, and I am facing some problems here
I need to set the name, email and external identifier of user before start any activity to be shown in the tickets screen
here is my code
Identity user = new AnonymousIdentity.Builder().withEmailIdentifier(mEmail).withNameIdentifier(mName).withExternalIdentifier(mIdentifier).build();
ZendeskConfig.INSTANCE.setIdentity(user);
Intent intent = new Intent(ContactUsActivity.this, ContactZendeskActivity.class);
startActivity(intent);
no thing appear in my tickets screen only "Mobile App User", non of my information is shown
can anyone tell me what is the problem here ?
Full disclosure: I'm one of the SDK devs. Generally you end up seeing 'Mobile App User' because of the way that the user lookup works.
Before I start, I'd like to point out that withExternalIdentifier is optional. I'd only recommend using it if you know for sure that you'll always have a unique ID there.
If you give us an external ID, we'll try to see if a user exists in your system with that ID. If it does we use that. For security reasons we don't let a mobile identity update the user. If no match was found on the external ID, we then look at the email, and follow the same lookup process.
The only time where the external ID and name will be set is if you are creating a new user. New means one that wasn't found already with the external ID or email that you are supplying.
If you still have issues you can drop us an email to support#zendesk.com
Thanks!
We are on JIRA On Demand. We have one Email handler configured to create/update tickets if we receive emails on a particular email id. In most of the cases, the emails will be from outside email ids and hence we have a JIRA user id by which the emails from unknown ids will be created as issues. So reporter of the issue will be our JIRA user though the emails are from some unknown email ids. Is there any way to get the actual "FROM Email ids" and put it in a custom field or at least to get the correct email id.
According to the Atlassian page on creating isses from incoming emails the "From" is appended at the end of the message body if you are using Default Reporter:
Default Reporter
Specify the username of a default reporter, which will be used if the email address in the From: field of any received messages does not match the address associated with that of an existing JIRA user — for example, a JIRA username such as emailed-reporter
(info) Note:
When an issue is created and this option is specified, the email message's From: field address is appended in a brief message at the end of the issue's Description field, so that the sender can be identified.
Unfortunately there doesn't look like a convenient way to transfer this to an issue field. At least the information will be present though in the issue description.
I am new to OAuth and have been playing around with the Twitter API. I am able to fetch the credentials of a user after authentication by making a request to http://api.twitter.com/1/account/verify_credentials.xml. The response contains the user id, screen name etc. but not the email ID.
Is it possible at all to retrieve the email ID of the user?
Update
I believe Facebook provides this information if you specifically request for extended permissions. Is there something similar for Twitter?
The user's email address can not be retrieved via the API. This is a deliberate design decision by the API team.
UPDATE 2015.08.18:
It is possible to request an email address from users, but it requires your app to be whitelisted. See https://dev.twitter.com/rest/reference/get/account/verify_credentials for details of the API call and this form to request whitelisting of your app.
For OutsourceFactor, which is written in Python / Django, I get the username via oAuth1, then construct an email as "username#twitter.com" which is guaranteed to be unique throughout twitter. Then I hash it to get a nice UUID to be used and associated with my local user account. Same thing for Yahoo. Google and Facebook use oAuth2 and they give me the email address on request which is nice.
To ensure multiple social associations with a single account, I allow social account associations ONLY after the user has locally created an account and is logged in.
So, you have to create an account first (local account), then you can use any of the social oAuth providers to ease your future logins. This is the best bang for the buck for my site.
Anyways, you get some unique form of ID from twitter. So just use it. You can ask for an email address later or before the association.
Email address is obfuscated by Twitter in their OAuth responses. Which always have been a great issue for people wanting to include a "Register with Twitter" function.
More recently (early 2015), Twitter have added email address support through a second service call, but under certain, abused, conditions.
https://dev.twitter.com/rest/reference/get/account/verify_credentials
So now it is possible, but my opinion is to continue to implement an OAuth every-provider-but-twitter single sign on. They must be boycotted until they act normally, i mean like every single other OAuth provider.
In Android using Fabric, I request the user's email address like this:
TwitterAuthClient authClient = new TwitterAuthClient();
authClient.requestEmail(session, new Callback<String>() {
#Override
public void success(Result<String> result) {
// Do something with the result, which provides the email address
}
#Override
public void failure(TwitterException exception) {
// Do something on failure
}
});
See http://docs.fabric.io/android/twitter/request-user-email-address.html
In my case every time I get the response I got a unique authentication id for every user and its same for that user every time. So I used that id to create a email like unique_id#twitter.com and check if that's already on my site ( for first time it is not ) and then register the user. Then if he logins second time I just again create the email and check if its already on there. By this I don't have to make him create a local account first and can identify him to login.
Here is the example how to get twitter user email in Laravel, and on coditty.com you can find the full example using Angular+Laravel
// get token secret from db
$token = TwitterTokens::where('oauth_token', $request->input('oauth_token'))->first();
// open twitter connection
$connection = new \Abraham\TwitterOAuth\TwitterOAuth(
$this->twitter_consumer_key,
$this->twitter_secret,
$request->input('oauth_token'),
$token->oauth_token_secret// twitter secret from DB
);
// get acces token
$access_token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $request->input('oauth_verifier')]);
// new TwitterOAuth instance to get email
$twitterOAuth = new \Abraham\TwitterOAuth\TwitterOAuth( $this->twitter_consumer_key, $this->twitter_secret, $access_token['oauth_token'], $access_token['oauth_token_secret'] );
// Let's get the user's info with email
$twitterUser = $twitterOAuth->get('account/verify_credentials', ['include_entities' => 'false','include_email'=>'true','skip_status'=>'true',]);
// output user object from twitter in your Log file
Log::info(['user'=>$twitterUser]);
Who said it's not possible ???
I have gotten in my iOS App after whitelisting the App.
Check my answer here.
Add this code!
$params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');
`$data = $connection->get('account/verify_credentials', $params); // get the data`
// getting twitter user profile details
$twt_id = $data->id; //twitter user id
$twt_email = $data->email; //twitter user email
Checkout full procedure here.
Who says you cant get users email, the “Request email addresses from users” checkbox is available under the app permissions on apps.twitter.com. Privacy Policy URL and Terms of Service URL fields must be completed in the app settings in order for email address access to function. If enabled, users will be informed via the oauth/authorize dialog that your app can access their email address.