Pulling images from Delve in an SPFx web part - sharepoint

I have created a web part which will find the members of an Azure AD group.
I am hoping to display each members profile picture.
I do this by using this address for each member
https://sfeur.delve.office.com/mt/v3/people/profileimage?userId=joe.bloggs%40mytenant.com&size=L
This will work but ONLY if I open a browser to Delve before I run the code.
Is there a way to get this to work?
Thanks
P

The issue is authentication - if You don't visit Devle before there are no auth cookies available hence nothing will be displayed.
I recommend using Graph API to get user photo, You can find a tutorial here:
https://learn.microsoft.com/en-us/graph/api/profilephoto-get?view=graph-rest-1.0
You can also use a npm package to help You with it:
https://www.npmjs.com/package/mgwdev-m365-helpers
Hope this helps

Related

Excel WebApi Odata Authentication with Organisational Account

I have created an OData Service using .Net 6 / OData 8 and am trying to authenticate using Organisational Account in Excel. I can test the authentication sucesfully in Postman and also in my web App that uses the authenticated service.
However, if I try and create an OData Feed in Excel and authenticate using [Organisational Account], I get an error "We were unable to connect because this credential type isn't supported for this resource.".
Microsoft seems to indicate that it is not supported to connect to "arbitrary" services per the following link.
https://learn.microsoft.com/en-us/power-query/connectors/odatafeed#authenticating-to-arbitrary-services
However, this is a pretty big limitation and I'm interested to know if anyone has been able to solve this problem yet.
I won't go into the configuration of my web api, suffice it to say that I have tried every possible combination of builder.Services.AddAuthentication()..... that I can find and they all seem to have a similar issue - ie. I can use the WebApi for everything that I need it for - except Excel.
A quick Google search gets many, many hits (and I think that I have read them all - ..... twice), but try as I might I haven't yet found one that has an answer that works.
The following link showed some promise, which indicated it might be possible to change the audiencce, but I could not make it work.
https://www.c-sharpcorner.com/article/azure-odata-feed-web-api-authentication-setup-with-azure-ad/
I did find another promising link that I can't seem to find again that indicated we could add the Office 365 Client Id to the list of Authorised Client Applications under Expose an Api of the app registration in Azure AD B2C. I did that, with not success.
I'm really at my wits end on this and have been trying to get a solution on and off the last couple of weeks. Would really appreciate any help from others who might have tried and succeeded at this.
Confirming that I have now worked out how to do this and have posted the solution to the following SO thread. connecting-excel-to-oauth-api-on-azure
There are a number of steps to the solutions, so won't attempt to summarise them here.

Need help getting programmatic access to a Google Drive

This might be a really basic question, but I can't quite figure out how to set up programmatic access to an external GD.
Our partner organization gives us access to their GD. I can access them through a browser. What I want to is to be able to programmatically download files from there (preferably using a python library) since there are a lot of them to download and I don't want to do it by hand.
I am using this as a guide but got stuck at step 4 "click ‘Configure consent screen’ and follow the instructions" -- what am I supposed to specify as Application Name and other items? And is there a better/easier way to set up programmatic access?
In case it makes a difference:
I am using a Win10 machine
I have no admin rights on it
Any guidance will be much appreciated!

How can you connect python to the Microsoft store and download an app?

I was wondering if there are modules, or code snippets to create a program that connects to the Microsoft store, in the background, and download an app(without pyAutoGUI). Thanks in advance.
There are no Official API's for accessing Microsoft store, A Possible solution is to use requests library or other equivalent to create a bot that can access various fields available on the website and navigate through, if you always want a certain(Same) application to be downloaded may be you can go directly to that links page and use get request for the download button as submit, this should work in theory, but again this will also keep breaking in short durations as Microsoft keeps making changes to it's website.
P.S. You might want to fool the website by adding headers to your request.

Integration : Chrome web store and slack

I was searching for a way to get some information from chrome webstore (I have couple of extensions there) specifically feedbacks from users and user count. And I would like to do something with that data.
I searched about chrome web store API
but couldn't find anything.
found launchkit which does same thing, but for appStore
I am thinking there is no straight way to do it, but if anyone has done it or got some idea about it please share it along,
Thanks in advance
A simple google tells me there are already some possible helpful answers:
Get user feedbacks
How to get user feedback/bug reports on a Chrome Extension through itself?
Get user count
API call for user count in Chrome Web Store?
The closest I can find out is chromebeat and my extensions I would have to figure out how this works without an existing API and write my own after that I guess.

Very simple user validation

I'm making an app and I plan to have some cloud happening with it, but I do not want to create a user data base and have the users need to remember their username and password.
Since it will be distributed through the chrome app store it's basically guaranteed that the user will have a google account. All I want to do is:
Get the user's email through the google account stuff. If I get it through there, well then their email is all the authentication I need to get that user's data.
If I end up putting the application on something other than chrome browser, I'll just have the user use their email to request a validation link, and then I'll send them a validation code for that account, they put the validation code into the application, it takes that as a verified user, so that's secure and easy as well.
EDIT: I'm looking into this. So far I have:
OAuth 2
Google API
But I have a problem that I don't know what to set as my javascript origins in the Google API and there isn't too much info on this abroad. If anyone can tell me what javascript origins I need to set for a chrome extension to access google api it would be a great help.
PS: Thanks for down vote, this is why I love resorting to stack exchange.
Hmmm, I think the only reason this was voted down is the fact that this question may be been asked somewhere on the site already (but I'll help you and give give a 1up).
So what you are wanting to use the Google OpenID. You will have to register your application with Google so they can provide OAuth2 tokens for you application. I have not done this with Google but with other services and it is pretty easy, just search around.
In terms of obtaining OAuth2 for your application in the chrome extension - this can be a pain since the extension is sandboxed and Google's example uses OAuth not OAuth2.
Here is solution I host on GitHub for this - I also use this in my extension GitHub Repositories:
https://github.com/jjNford/oauth2-chrome-extension
Hope this helps in some way. Don't get discourages with StackOverflow, it is a great resource with many great contributors.
Good luck!
I had to up vote you too as I'm tracking down a related issue so here is what I've found that may help.
According to these directions - http://code.google.com/p/google-api-javascript-client/wiki/Authentication - "In the "Authorized JavaScript Origins" box, enter the protocol and domain for your site." This should be the protocol (http:// or https://) followed by any optional subdomain followed by your domain name and no trailing slash. Nothing after the domain name.
This prevents certain kind of security attacks, see: http://en.wikipedia.org/wiki/Same_origin_policy.
There are some related questions here that I found that may help:
Problems with Google Picker API and selecting Google Drive items and google apis console 'Javascript origins'.
Now with all of that said, I am still trying to track down what values to put in there for one of my sites hosted as a Google Site, as none of the obvious values are working for me. So there may be some subtlety there that I have missed in this explanation.

Resources