isCustomResponse() API - Available or not MFPF8 - javascript

I have been trying to use isCustomResponse() API to grab the responses back from the network. I need to test the responses before I can make decision on what I need to do next in my Cordova app.
I had earlier asked a similar question before # submitLoginForm() does not send the data to the authentication server - MobileFirst Cordova client
and it was informed that isCustomResponse() API is no longer available in MFPF8. When I look at the API list on MFPF8 online help here: https://www.ibm.com/support/knowledgecenter/SSHS8R_8.0.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Client.AbstractChallengeHandler.html
the API is one of the available APIs. Can someone please confirm whether this API is available or not. If it is not available, then I guess the online documentation requires an update.
Further, if this API is not available, can you please let us know as to why is this being removed from MFPF8?
Thanks.

In Foundation 8.0, in most cases your security is implemented as a Security Check. When using a security check, the API isCustomResponse is no longer relevant: the framework will check the name of the security check to determine whether to activate the challenge handler. These types of challenge handlers are called SecurityCheckChallengeHandler.
There is one special scenario where you may still be interested in isCustomResponse: if your security is implemented by a third party gateway, such as DataPower.
In such a case, you need to use a different type of challenge handler, called GatewayChallengeHandler. In JavaScript they are created using the API WL.Client.createGatewayChallengeHandler (see documentation: http://www.ibm.com/support/knowledgecenter/SSHS8R_8.0.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Client.html#createGatewayChallengeHandler).
There you can use the old APIs such as isCustomResponse and submitLoginForm.
EDIT: With 8.0 GA, isCustomResponse has been renamed canHandleResponse.
Important notes:
There is a known issue in 8.0 beta that may prevent "gateway" challenge handlers to be triggered in some cases. This should be fixed when the release of the 8.0 GA version. Fixed.
The names of these challenge handlers and APIs are scheduled to change upon GA, so keep an eye out for this. Done, see this blog post: https://mobilefirstplatform.ibmcloud.com/blog/2016/06/22/challenge-handlers/
The API documentation will be updated with the release of GA as well. Done.

Related

How can I separate Firebase event analytics by platform?

We have an iOS app, an Android app and a Web app, all utilizing Firebase for analytics. In Firebase, these are listed under the Prod 'project' as different apps within the same project.
I noticed for our list of events, it seems our apps are sharing similar events. Such as when a user logs in, etc.
But how can I dig into those event analytics and see what platform each event was triggered from? How can I check how login events come from Web alone?
Obviously I could make a custom event called 'Web Login Event' but that seems like it would go against our Event naming standards and possibly clutter our list of Events. Any way to separate event analytics by platform (app) out of the box?
Firebase, despite having a robust data structure, provides extremely poor toolset to access the data and query it properly.
You want to connect your Firebase to GA4. Once done, you will have all your data in a proper space for analysis since GA4's data structure was completely copied from that of Firebase. Since GA4 is still a new and certainly buggy product, it is advised to only use the explorer and change the data retention setting to the maximum that's allowed to you. By default, it's just 2 months.
Now that should solve your analysis requirements, but if you need to go even deeper than that, you can always link your GA4 property to BQ and then have the full power of SQL at your feet.

Is it recommended to keep a Giphy API key secret?

I'm using Giphy's API and currently have a development key. I am looking to deploy my site but don't know whether it is a public facing key or a private one, and cannot find an answer online nor after asking them directly.
Here is the official response to this question from GIPHY:
GIPHY APIs are designed to be used on the client side (and hence the API key too). You should go ahead and use it that way. Once development is complete - please apply for Production access for the key through the Developer Dashboard, this removes Rate limits associated with a beta key, so you don't have to worry about high traffic.
Lastly, and most importantly - GIPHY has monitors setup for API key abuse and we'll reach out to you if anything happens. We definitely don't want you to worry about it.
From here
Seems shouldn't be worrying about it.
While I generally tend to agree with Jay's answer, after reviewing their introduction and the specific javascript sample it seems to me that this key should be used from the browser and as a result it is practically a public key.
I would assume that later on in the process, to avoid abuse with production API key, they might only serve requests coming from a domain you registered along with that key.
Development key is anyhow for limited testing purposes as far as I understand so that's less of an issue if there's no registered domain for that.

/api/data/v8.2 to /api/data/v9.0 after dynamics CRM online upgrade?

I'm relatively new to using the Web API (HTTP REST API) to access Dynamics CRM using javascript so I apologise in advance if this is a stupid question.
We've recently upgraded from v8.2 online to v9.0. Does this mean that I have to parse the js code library that we have and change code such as the one below from v8.2 to v9.0?
req.open("GET", encodeURI(clientUrl + "/api/data/v8.2/accounts?$select=name&$filter=contains(name,'" + strSearch + "')"));
I did perform some preliminary searches but wasn’t able to locate anything that answers my question.
Not required. As far as I know, D365 9.x releases will support v8.0 Web API unless there is a change in plan for future releases. There are minor changes between the two. For example, if attribute name is same as entity name, v9.x API will not append '1' to the attribute name as v8.x API used to be. In fact, you are required to retest your JavaScript client in case you ever move to v9.0. CRM will otherwise try its best to ensure that backward compatibility is not broken with v8.x APIs.
Better to do one time refactoring to use Xrm.Page.context.getVersion, this way the version will be dynamic in supported way.
Probably.
Go to Developer Resources within CRM. (Settings > Customisations > Developer Resources).
You can then see the API endpoints for your organisation.

App Engine and Facebook: which libraries to use?

I will be developing a web application with Google App Engine that will use Facebook Connect as the only means of registering / logging in. The web app will be written in Python. I need to know their name, profile pic, how many friends the user has, as well as their age and also possibly location, relationship status, work info, etc. (although those are mostly optional besides name, pic, age and friend count).
There seem to be a number of libraries that can do the task. There is the official Facebook Javascript SDK, minifb, and pyfacebook to name a few.
How do you think I should go about this task? Which libraries should I use, and what are the pros / cons?
Also to be considered is how well documented the code is and how widely it is used. If you can provide links to relevant example code / documentation, that would be greatly appreciated.
Facebook python-sdk has an example application to use Facebook connect with Google App Engine. I guess, you are looking for the same.
This should be a comment for the answer which suggests using the Facebook python-sdk.
Note that at github it says
This SDK is deprecated. It does not support the new cookie format that
we rolled out as part of the OAuth Migration. In short, it doesn't
work.
I've had success with the facebook-sdk project, which I believe is a fork of Facebook's original (and now dead) python-sdk project noted above. However you may also wish to check out EngineAuth.
Why don't you check out this similar question asked by another StackOverflow user:
Simple Facebook Connect in Google App Engine (Python)
There are some links provided here that sound exactly like what you're looking for.
For all specified detail you need to go with respective permission from users and then you can extract all specific information you needed.
You can go by either Graph Api or Javascript Api:
But with javascript you need to use many ajax request through your application where graph api only need access_token once for particular instance and also independent of client action.
Graph API also helps you in preventing use of other framework like pyfacebook, minifb, etc.
Apart from pros and cons you can also look some example code for both javascript and graph api
Hope this information will be useful to you.

What is the difference between showFeedDialog and publishUserAction Facebook API?

I saw few tutorials mentioning showFeedDialog, but none that mention how to use publishUserAction. what is the difference anyway?
Is there anyway to use showFeedDialog without prompting the user ?
Are there any good tutorial on how to use publishUserAction?
why does publishuseraction have a suqeuncebase parameter while showfeedialog doesn't have
1) showFeedDialog is a Javascript-only method that is used to render a UI element. Specifically, it renders a dialog box that prompts a user to publish a story to their profile (or a friend's profile). It can be used via Facebook Javascript (FBJS), or the Facebook Connect Javascript libraries.
publishUserAction is an API method, and can be called using any of the Facebook API libraries, including the server-side ones. You don't need a user's confirmation to publish something using this call. However, it can now only publish one-line stories by default, and these do not appear in the main news feed anymore.
The doc pages for showFeedDialog and publishUserAction have some examples, albeit small and not entirely useful ones.
2) There is not, unfortunately, unless the user has granted extended permissions to your application. You generally have to prompt for extended permissions as well.
3) Facebook's documentation is very poor. Your best bet is usually to check out the API documentation on the specific method you want to use, google around like a crazy person, then set up a test in a development application.
4) Only API calls that rely on a session require the sig parameter (deprecated functions had a separate call_id parameter, but that has been rolled into sig in newer versions of the API functions). showFeedDialog is not an API call, it's a Javascript library call, and it handles all the necessary API stuff for a feed prompt in the background.

Categories