Find your content:

Search form

You are here

Is it possible to access the full profile picture in a custom Apex class without a callout?

 
Share

Haven't been able to find anything useful online about this yet... I'm looking to have my app call my existing custom Apex and get the profile picture from that class. I do not want to get the picture by having the app make a separate call to the Chatter API. I want to get the image from my custom Apex class. Is there some simple SOQL I can use to get the full profile picture into my Apex class? Thanks.


Attribution to: Brad Thomas

Possible Suggestion/Solution #1

From poking at the schema it seems like you can query the table UserProfile. In there there's 2 fields you can use, FullPhotoUrl or SmallPhotoUrl

Select SmallPhotoUrl, FullPhotoUrl From UserProfile Where Id = '<insert userId>'

After some more quick research this seems to be an Sobject / Table that's not currently accessable called Photo. You can test this by using developer console or eclipse and using this piece of code:

System.debug(System.LoggingLevel.ERROR, Id.valueOf('729J00000004Q8s').getSObjectType());

The way I got my Id was by copying the photo file URL and copying the Id portion of that url: https://c.cs10.content.force.com/profilephoto/729J00000004Q8s/F

List provided may be out of date. Source from 2011

Key Prefix => Object Type

000 => Empty Key

001 => Account

002 => Note

003 => Contact

005 => User

006 => Opportunity

007 => Activity

008 => OpportunityHistory

00B => ListView / View

00D => Organization

00E => UserRole

00G => Group

00I => Partner

Als =>o OpportunityPartner, which "is automatically created when a Partner object is created for a partner relationship between an account and an opportunity"

00J => OpportunityCompetitor

00K => OpportunityContactRole

00N => CustomFieldDefinition - Setup > Create > Objects > [Your Object] > [Your Field]

CF0 =>0N Custom Field Id using in the query string. Note the keyprefix isn't actually CF0. In this case "CF" has been appended to the "00N" of the Custom Field Definition.

00O => Report

00P => Attachment

00Q => Lead

00S => ImportQueue

00T => Task

00U => Event

00X => EmailTemplate

00Y => EmailTemp

00a => CaseComment or IdeaComment

Use => caution as there are at least two object types exposed via the partner API with the same keyPrefix!

00a => IdeaComment or CaseComment

Use => caution as there are at least two object types exposed via the partner API with the same keyPrefix!

00b => WebLink - Custom Button or Link

00c => Training

00e => Profile

00h => Layout - Page Layout

00i => Pricebook

00j => Product

00k => OpportunityLineItem

00l => Folder

00o => OpportunityLineItemSchedule

Rep =>resents information about the quantity, revenue distribution, and delivery dates for a particular OpportunityLineItem.

Pro =>ducts, Price Books, and Schedules Overview

00p => UserTeamMember

00q => OpportunityTeamMember - "This object is available only in organizations that have enabled team selling."

00r => AccountShare

00s => AccountOwnerSharingRule

00t => OpportunityShare

00u => OpportunityOwnerSharingRule

00v => CampaignMember

010 => CaseSolution

011 => GroupMember

012 => RecordType

013 => RecordTypePicklist

014 => ProfileRecordType

015 => Document

016 => BrandTemplate (Letterhead)

017 => Entity History

018 => EmailStatus

019 => BusinessProcess

01A => BusinessProcessPicklist

01B => LayoutSection

01C => LayoutItem

01D => UserAccountTeamMember

01G => ProfileLayout

01H => MailmergeTemplate

01I => Custom Object

01J => PicklistMaster

01N => Scontrol

01P => ProfileTabConfiguration

01Q => WorkflowRule - AssignmentRule

01R => RuleFilter

01S => RuleFilterItem

01T => RuleFilterAction

01U => ActionAssignEscalate

01V => ActionTask

01W => ActionEmail

01X => ActionEmailRecipient

01Y => CampaignMemberStatus

01Z => Dashboard

01a => DashboardComponent

01b => ListViewCriterion

01c => ListViewDisplayColumn

01e => PicklistSet

01h => Translation

01j => LocalizedValue

01k => FieldPermissions

01l => ActionResponse

01m => BusinessHours

01n => CaseShare

01o => LeadShare

01p => ApexClass

01q => ApexTrigger

01r => CustomTabDefinition - Visualforce Tab

01s => Pricebook2

01t => Product2

01u => PricebookEntry

01v => PricebookShare

01w => OpportunityUpdateReminder

01y => CaseOwnerSharingRule

01z => CaseEscalation

020 => EventAttendee

022 => FiscalYearSettings

023 => Calendar

024 => CalendarShare

025 => ListLayoutItem

026 => Period

02A => LeadOwnerSharingRule

02B => LabelDefinition

02C => LabelData

02D => CaseHistory2

02F => CustomFieldMap

02T => CustomPage

02U => CustomPageItem

02V => PageComponent

02X => CustomPageProfile

02Y => UserComponentData

02Z => AccountContactRole

02a => ContractContactRole

02b => ComponentResourceLink

02c => Sharing Rule

02f => DelegateGroup

02g => DelegateGroupMember

02h => DelegateGroupGrant

02i => Asset

02k => ListLayout

02m => CustomIndex

02n => CategoryNode

02o => CategoryData

02p => DivTransferEvent

02q => LayoutItemColumn

02r => OpportunityAlert

02t => EmailRoutingAddress

02u => TabSet - AKA. Apps

02v => TabSetMember

02w => LoginIpRange

02x => LoginHours

02y => ReportAggregate

02z => ReportColorRange

033 => AllPackage - Package being built in the developer org

034 => PackageMember

035 => SelfServiceUser

036 => JobQueue

037 => ReportColumn

038 => ReportFilterItem

039 => ReportBreak

03D => ContactOwnerSharingRule

03G => AccountCriteriaSharingRule

03H => ContactCriteriaSharingRule

03I => CaseCriteriaSharingRule

03J => ChatterMessage

03K => ChatterMessageThread

03M => ChatterConversation

03N => ChatterConversationMember

03a => DependentPicklist

03c => LayoutRightPanel

03d => ValidationFormula - Validation Rule

03e => CustomSetupDefinition

03f => CustomSetup

03g => QueueSobject

03i => ConsoleConfig

03j => CaseContactRole

03k => ConsoleConfigItem

03n => ApexClassIdentifier

03q => ApexClassIdentifierRelationship

03s => ContactShare

03u => UserPreference

040 => ReportParam

043 => OutboundField

044 => ExternalizedReference

045 => PartnerNetworkSetup

04Y => ActionFieldUpdate - Field Update

04Z => EntityLock

04a => ProcessDefinition

04b => ProcessNode

04c => ProcessTransition

04d => ProcessTransitionCondition

04e => ProcessActionItem

04f => ProcessWorkitemProperties

04g => ProcessInstance

04h => ProcessInstanceStep

04i => ProcessInstanceWorkitem

04j => ProcessAllowedSubmitter

04k => ActionOutboundMessage - Outbound Message Id

04l => OutboundMessage - Outbound Notification Id

04m => AdditionalNumber

04n => SoftphoneLayout

04o => SoftphoneLayoutSection

04p => SoftphoneLayoutItem

04q => SoftphoneLayoutInfoField

04r => SoftphoneLayoutCallType

04s => AsyncRequest - AsyncResult, DeployResult

04t => AllPackageVersion - Install Package

04u => ActionOverride

04v => CallCenter

04x => PackageExtension

04z => LayoutItemActionRef

04V => PartnerNetworkRecordConnection

04P => PartnerNetworkConnection

050 => PackageLicense

051 => UserPackageLicense

052 => SfdcOutboundMessage

053 => WorkflowTimeTrigger

054 => WorkflowTimeAction

055 => WorkflowTimeQueue

056 => ContentTagName

057 => ContentDocumentSubscription

058 => ContentWorkspace

059 => ContentWorkspaceDoc

05A => ContentWorkspaceMembership

05B => CampaignCriteriaSharingRule

05C => ContentVersionComment

05G => IpWhitelist

05I => CampaignSharingRuleFilterItem

05J => ContentVersionRating

05K => ContentVersionRenditionContent

05L => DBCThumbnailFilter

05N => ContentVersionTagName

05P => ContentWorkspacePermission

05Q => ContentTagSubscription

05R => ContentWorkspaceSubscription

05S => ContentUserSubscription

05T => ContentContent

05U => EntityFeedLayout

05V => ContentNotification

05W => ContentNotificationParam

05X => DocumentAttachmentMap

05Z => ContentWorkspaceRecentEvent

05t => CustomEntityTranslation

060 => Portal

061 => PortalAccount

062 => PortalStyleConfig

063 => MobileConfig

064 => QuerySet

065 => QuerySetItem

066 => ApexPage

067 => PortalMember

068 => ContentVersion

069 => ContentDocument

06A => ContentDocumentLink

06B => ContentWorkspaceAllowedRecType

06G => CustomConsoleComponent

06N => ApplicationDependency

06O => ServiceDeskAttributes

06P => Application - Connected App

070 => CustomReportType

071 => CrtObject

072 => CrtColumn - Related to reports in some way.

073 => CrtLayoutSection

076 => RateLimitingNotification

078 => ApiUsage

079 => MobileMarkedRecord

07A => MassMail

07D => FeedPostTemplate

07E => Sandbox

07F => FeedFavorite

07G => SummaryRecalcQueue

07J => ComponentObjectDependency

07K => ComponentFeatureDependency

07L => ApexLog

07M => ApexTestResult

07O => Canvas

07P => EntitySizeJob

07R => DataCategoryMapping

07T => AuthConfig

07U => AuthConfigProviders

07V => ActionSend

07Y => BatchOrgSizeJob

07Z => EntityDataSize

07e => FeedPostTemplateItem

07n => ApexExecutionOverlayResult

080 => PacCrudPermission

081 => StaticResource

082 => UninstallExport - Data from Uninstalled Packages? A zip containing CSVs.

083 => Vote

084 => VoteConfig

085 => VoteStats

086 => MobileDevice

087 => Idea

08E => AddressCountry

08F => AddressState

08a => CronJobDetail

08d => CampaignOwnerSharingRule

08e => CronTrigger

08g => CronFiredTrigger

08s => CampaignShare

090 => MobileExcludedField

091 => EmailServicesFunction

092 => Weekly Data Export

093 => EmailServicesAddress

094 => MobileView

095 => MobileViewSortColumn

096 => MobileViewDisplayColumn

097 => MobileViewFilter

099 => ApexComponent

09A => FeedPollChoice

09B => FeedPollVote

09D => QuickActionDefinition

09F => DatacloudPurchaseUsage

09H => ConnectedApplication2

09I => QuickActionListItem

09J => QuickActionList

09S => AsyncRequestFFX

09T => AsyncRequestFFXResult

09U => DomainCookieStore

09V => DashboardStickyFilter

09a => Community

0A0 => ReportJob

0A1 => ReportJobFieldMap

0A2 => DevelopmentPackageVersion - Change Set

0A3 => InstalledPackageVersion - Installed Package

0A4 => ProcessTransitionApprover

0A5 => AllManagedPackageMember

0A7 => CustomShareRowCause

0A8 => ReportJobRun

0A9 => ReportJobRunError

0AB => ProfilePortalDelegate

0AD => PackageEvent

0AH => CompactLayout

0AI => FirehoseCheckpoint

0AL => ExternalSocialAccount

0AM => CompactLayoutItem

0AN => CompactLayoutMapping

0AT => EventLogFile

0AU => AuthSecurityLevel

0AW => CanvasFeedItem

0AX => ConsolePersonalization

0AZ => ActionApex

0Af => DeployRequest

0Ai => DeployMessage

0Aj => AsyncApiTransformationSpec

0Ak => AuthSession

0Al => DeployTestResult

0B0 => MobileEntitySetting

0B1 => MessageIdentifier

0B2 => PortalLanguageConfig

0B3 => PortalLanguageTabConfig

0B9 => MobileTab

0BA => CustomDataType

0BB => CustomDataTypeComponent

0BC => CustomFieldDataColumn

0BE => FileFieldData

0BF => ComponentAppVersion

0BG => CampaignInfluenceAdjustment

0BH => AllManagedClassRelationship

0BI => ContentVersionMap

0BJ => ActionAssignTeam

0BL => PackageIdMapping

0BM => Connection - Salesforce to Salesforce

0BR => LogSearchResult

0BV => OpportunityCriteriaSharingRule

0BW => MobilePushDevice

0BX => HistoricalEntityConfig

0BY => MqSlaRequest

0BZ => EmailBrand

0Ba => LoginBrandAsset

0Bb => LoginBrand

0Bc => MqSlaJob

0Bd => HistoricalFieldConfig

0Be => HistoricalTransactionPrefix

0Bf => HistoricalStaging

0Bi => HistoricalSelectorValue

0Bk => HistoricalSelector

0Bl => BlacklistedConsumer

0C0 => Holiday

0C2 => MobileSession

0C8 => LongJob

0CC => SiteChangelistComponent

0CF => ChatterNowUserFavorites

0CI => EntityImplements

0CJ => FieldImplements

0CL => SiteChangelist

0CS => ChatterNowUserSettings

0Ci => AppManifest

0D1 => DataCategoryGroup

0D2 => OrgWideEmailAddress

0D3 => OrgEmailAddressSecurity

0D4 => LeadCriteriaSharingRule

0D5 => FeedItem or NewsFeed or UserProfileFeed

Use => caution as there are at least three object types exposed via the partner API with the same keyPrefix!

0D6 => FeedTrackedChange

0D7 => FeedComment

0D8 => AllManagedMemberOption

0D9 => LeadSharingRuleFilterItem

0DA => EntityCategoryGroup

0DC => ProcessTransitionAction

0DD => SynonymGroup

0DE => Synonym

0DF => VersionSet

0DG => NamedFilter

0DH => FieldAttributes

0DM => Site

0DN => SitePageOverride

0DR => AndroidPushApplicationSetup

0DS => AppMenuItem

0DT => IdeaReputationLevel

0DU => LimitUsageHistory

0DV => PushUpgradeRequest

0DX => PushUpgradeJob

0DY => PushUpgradeJobError

0Db => ForecastingType

0Df => InstanceSizeJob

0E0 => EmailSyncConfig

0E1 => EmailSyncEntitySetting

0E2 => EmailSyncFieldMapping

0E3 => EmailSyncValueMapping

0E4 => EmailConfigEntitySetting

0E5 => EmailUserEntitySetting

0E6 => EmailSyncAdvancedSetting

0E8 => EntitySubscription

0EA => PackageVersionPatchOrg

0EB => Renderer

0EG => ReportChart

0EH => SummaryLayout

0EI => SummaryLayoutItem

0EJ => SummaryLayoutSliceInfo

0EM => ContentReference - Appears next to refid query string parameter when pulling images. See rtaimage servlet parameters…what does the refid refer to?

0EO => PicklistItemProperty

0EP => Inbound Change Set?

0EQ => CategoryJobTask

0ER => RichTextAreaFieldData

0EV => AllInstalledPackageVersion

0Eb => ModuleDependency

0Ee => HistoricalDataFilter

0Ef => HistoricalDataFilterItem

0Eg => GlobalDbKey

0F0 => EmailTempAttachmentMap

0F3 => ReportBlock

0F5 => PhotoItem

0F7 => FeedPost

0F8 => SoftphoneScreenPopOption

0F9 => CollaborationGroup

0FA => CsnDomain

0FB => CollaborationGroupMember

0FG => MobilePushServiceDevice

0FH => LinkReference

0FM => FeedMapping

0FO => OrgSizeJob

0FP => ReportRunTracker

0FQ => TrialMaster

0FR => PackageOperationError

0FT => TopicAssignment

0Fa => ContextFieldAttributes

0G1 => FeedFieldHistory

0G8 => ReportBucketField

0G9 => AccountSharingRuleFilterItem

0GC => EmailDisclaimer

0GD => ReportBucketFieldValue

0GE => ReportBucketFieldSourceValue

0GH => SchemaBuilderLayout

0GI => SchemaBuilderLayoutItem

0GJ => ApplePushApplicationSetup

0H0 => SiteRedirectMapping

0H1 => CollaborationInvitation

0H4 => ConnectedApplication

0H7 => PackageSupportAccess

0HF => PublishEvent

0HG => EntitySharingModel

0HI => ReportBlockAggregate

0HN => TwoFactorInfo

0HO => MobilePushSetupRegistry

0HR => MetricsTransmissionHistory

0Hi => AppIpRange

0Hj => AppManifestVersion

0Hk => ConnectivityDevConfig

0Hl => ConnectivityAttributes

0I0 => FeedLike

0I2 => SiteAsset

0I3 => SiteComponent

0I4 => Domain

0I5 => CollaborationGroupMemberRequest

0I6 => OpportunitySharingRuleFilterItem

0I7 => CaseSharingRuleFilterItem

0I8 => ContactSharingRuleFilterItem

0I9 => ReportObjectFilterItem

0IA => KnowledgeLanguageConfig

0IB => DashboardFilter

0IC => DashboardFilterItem

0ID => DashboardFilterRepCol

0IF => PushTopic

0II => FeedCrossReference

0IO => BrandingValue

0IS => ApexComponentAttribute

0IV => LogSearch

0IX => FieldSet

0IY => FieldSetItem

0Ih => ServiceDeskComponent

0Ii => PushProfileMapping

0Ij => PushIntent

0Ik => Module

0In => PhoenixDataSync

0Io => RawEmail

0J0 => SetupEntityAccess

0J2 => Personalization

0J4 => SPSamlAttributes

0J5 => PredictiveModel

0J8 => ServiceDeskHotkey

0JS => JigsawSavedSearch

0Jf => DomainSite

0K0 => ActionKnowledgeSubmit

0K2 => ActionChatterPost

0K3 => ActionChatterPostRecipient

0LD => RecalcCampaignStats

0LG => ReportInstance

0LN => StorageSizeJob

0M1 => SocialUserAuth

0ME => SessionLevelPolicy

0MF => SynonymDictionary

0MJ => SystemStreamingChannel

0O0 => XinstanceInfo

0P0 => FlowVariableAssignment

0P1 => Certificate

0P2 => CertificateIp

0PF => ParallelJobItemData

0PL => PermissionSetLicense

0PQ => ProcessTimeQueue

0PS => PermissionSet - Permission set metadata

0Pa => PermissionSetAssignment

0Q0 => Quote

0Qc => ActionQuickCreate

0RA => ActivityRelation

0RE => EventRelation

0RT => TaskRelation

0SO => AuthProvider

0TI => TopicIndex

0TO => Topic

0TY => TopicOntology

0Tt => TopicTerm

0XC => ExternalDataSource

0XU => ExternalDataUserAuth

0Ya => LoginHistory

0Ym => SetupAuditTrail

0Ys => ParallelJobStatus

0Yu => IdpEventLog

0Yw => UserLogin

0ca => ChatterActivity

0cs => OauthConsumerScope

0e1 => ProfileClientSettings

0eb => EntityBlacklist

0hc => HashtagCount

0hd => HashtagDefinition

0ht => Hashtag

0in => Influence

0ns => ProcessNodeSecurity

0rp => RemoteProxy

0sp => ServiceProvider

0tR => TopicRecordSetting

0tS => TopicSuggestionSetting

0te => TopicUserEvent

0tg => TopicGroupActivity

0tr => TrendingTopic

0ts => ProcessTransitionSecurity

0tu => TopicUserActivity

100 => UserLicense

101 => ExternalString - Custom Label

102 => FeatureLicense

10y => TaskRecurrenceException

10z => EventRecurrenceException

110 => ObjectPermissions

111 => EventComments

112 => ProposedEventTime

113 => ProposedEventResponse

11a => DBCThumbnail

1ci => Integration

1cl => ChangeList

1dc => MetadataContainer - from the Tooling AP

1de => IDEWorkspace

1do => ApexExecutionOverlayAction

1dp => IDEPerspective

1dr => ContainerAsyncRequest - from the Tooling API

204 => SfdcPartner

2LA => PermissionSetLicenseAssign

300 => InteractionDefinition

301 => InteractionDefinitionVersion

308 => InteractionCondition

309 => InteractionOperand

30A => InteractionAllocator

30C => InteractionChoice

30D => InteractionDecision

30F => InteractionForm

30L => InteractionConnector

30Q => InteractionQuestion

30R => InteractionReference

30S => InteractionStatement

30V => InteractionVariable

30a => InteractionAllocation

30c => InteractionConstant

30d => InteractionDataColumn

30f => InteractionFormula

30g => InteractionLayoutGroup

30m => InteractionApexCall

30r => InteractionResource

30t => InteractionTodo

30v => InteractionValueList

310 => InteractionLayoutDetail

31A => Subinteraction

31C => SubinteractionVariableAssignment

31S => InteractionSwitch

31V => InteractionFieldValue

31c => InteractionChoiceLookup

31d => InteractionDataSource

31i => InteractionDataInput

31o => InteractionDataOutput

31v => InteractionValueListEntry

3M1 => OrgObjectsMetrics

3M3 => ChatterMetrics

3M4 => ChatterOrgWideMetrics

3M5 => NetworkCustomerLoginMetrics

3M6 => NetworkPartnerLoginMetrics

3MA => PermissionSetMetricsByOrg

3MC => OpportunityMetrics

3MD => ContentMetrics

3MF => SharingRowCauseMetrics

3MG => SharingMetrics

3MH => IdeaMetrics

3MI => UserDimMetrics

3MJ => PermissionSetLicenseMetrics

400 => ApexClassMember

401 => ApexTriggerMember

402 => ApexPageMember

403 => ApexComponentMember

4A0 => MetadataCheckout

4F0 => ApexClassVersion

4F1 => ApexTriggerVersion

4F2 => ApexPageVersion

4F3 => ApexComponentVersion

500 => Case

501 => Solution

5Sp => SegmentSpace

5CS => Chat Session

608 => ForecastShare

6AA => AssociationQueueItem

6AB => EventAssociationItem

6AC => MailAssociationItem

6AD => TaskAssociationItem

701 => Campaign

707 => AsyncApexJob

708 => BatchApexRelationship

709 => ApexTestQueueItem

710 => LoginIp

711 => ApiLoginKey

712 => LoginIpEmail

713 => ClientBrowser

714 => ApexCodeCoverage

715 => ApexCodeCoverageAggregate

716 => ApexOrgWideCoverage

729 => Photo

737 => FieldHistory

750 => AsyncApiJob - Bulk Query Job

751 => AsyncApiBatch - Bulk Query Batch

752 => AsyncApiQueryResult - Bulk Query Result

753 => TempStore

754 => AsyncApiJobOptions

766 => UiStyleDefinition

777 => UiStyle

7tf => TraceFlag

800 => Contract

806 => Approval

80D => OrganizationValue

888 => OauthConsumer - Remote Access

ka0 => Article - Knowledge Article

X00 => Found in the PermissionSet Name column where the ProfileId is also defined. It matches the ProfileId with the exception of the key prefix.


Attribution to: Double A
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/30463

My Block Status

My Block Content